我不明白为什么python的re.findall在下面的例子中没有返回所有找到的子串。有什么想法吗?
>>> import re
import re
>>> t='1 2 3'
t='1 2 3'
>>> m=re.findall('\d\s\d',t)
m=re.findall('\d\s\d',t)
>>> m
m
['1 2']
但预期的结果是 m = ['1 2','2 3']。
有关信息,我使用的是python 2.6.1。感谢。
答案 0 :(得分:5)
help(re.findall)
在模块中帮助函数findall:
findall(pattern,string,flags = 0)
返回所有列表 字符串中的非重叠匹配。如果模式中存在一个或多个组,则返回
小组名单;如果模式超过,这将是一个元组列表 一组。结果中包含空匹配。
由于两个结果重叠(两者都有' 2'),只会返回第一个。
如果您将t='1 2 3 4'
,则结果将为['1 2', '3 4']
。