-1

可能重复:
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']

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

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

4

1 回答 1

5

help(re.findall)

关于模块 re 中的 findall 函数的帮助:

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

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

结果中包含空匹配项。

由于两个结果重叠(都包含“2”),因此只会返回第一个结果。

如果相反,您将得到t='1 2 3 4'结果将是['1 2', '3 4'].

于 2012-12-24T08:02:31.600 回答