为什么python的re.findall不返回我的例子中所有找到的子串?

zel*_*ell -1 python findall

可能重复:
Python正则表达式找到所有重叠匹配?

我不明白为什么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']
Run Code Online (Sandbox Code Playgroud)

但预期的结果是m = ['1 2','2 3'].

有关信息,我使用的是python 2.6.1.谢谢.

Ita*_*aro 5

help(re.findall)

在模块re中帮助函数findall:

findall(pattern,string,flags = 0)
返回字符串中所有非重叠匹配的列表.

如果模式中存在一个或多个组,则返回
组列表; 如果模式有多个组,这将是一个元组列表.

结果中包含空匹配.

由于两个结果重叠(两者中都有'2'),因此只返回第一个结果.

如果相反你会得到t='1 2 3 4'结果['1 2', '3 4'].