2016-11-23 91 views
0
import re 
print(len(re.findall('ANA', 'BANANA'))) 

这将输出1,但我想统计使用包含字符的匹配,所以输出应该是2.可以使用重新findall?Python重新找到多个实例允许相同的字符

+0

不,您必须编写代码来迭代地更改锚点。你想要的是重叠的匹配,但're'模块的方法只能找到不重叠的匹配。 –

回答

2

你不能用当前标准的re模块做到这一点。然而,在其他线程中指出,你可以使用新regex模块,它提供了一个overlapped标志:

import regex 
print(len(regex.findall('ANA', 'BANANA', overlapped=True))) 

regex模块的信息可以在这里找到:https://pypi.python.org/pypi/regex

你可能必须安装它为:

pip install regex 

的其他线程中提到:How to find overlapping matches with a regexp?Python regex find all overlapping matches?

相关问题