मुझे दिए गए रेगेक्स के लिए स्ट्रिंग में सभी मैचों को खोजने की ज़रूरत है। मैं ऐसा करने के लिए findall()
का उपयोग कर रहा हूं जब तक कि मैं ऐसे मामले में नहीं आया जहां यह मेरी अपेक्षा नहीं कर रहा था।पायथन - regex खोज और findall
regex = re.compile('(\d+,?)+')
s = 'There are 9,000,000 bicycles in Beijing.'
print re.search(regex, s).group(0)
> 9,000,000
print re.findall(regex, s)
> ['000']
इस मामले search()
रिटर्न मैं क्या जरूरत है (सबसे लंबे समय तक मैच), लेकिन findall()
अलग ढंग से व्यवहार करती है, हालांकि डॉक्स मतलब यह एक ही होना चाहिए में:
findall()
मैचों में एक की सभी घटनाओं उदाहरण के लिए पैटर्न, न केवलsearch()
करता है।
क्यों व्यवहार अलग है?
search()
के साथfindall()
(या कुछ और) के परिणाम को मैं कैसे प्राप्त कर सकता हूं?
'' ([\ d,] +) ' – dawg