我需要在给定正则表达式的字符串中找到所有匹配项。我一直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()
withfindall()
(或其他)的结果?