查找字符串中以1对分隔的对的数量[重复]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

我试图在Python中使用正则表达式和re.findall()来计算字符串中1对的分隔数。应用于字符串11110的正则表达式应该返回2并应用于01101它应该返回1

我的代码如下:

matches = len(re.findall(r'1[\w]+1', str1))

但适用于110110它返回1,因为它只找到子串11011。我希望它也能找到子串101。我的正则表达式是错的还是re.findall()不是我应该使用的功能?

python regex string matching
1个回答
1
投票

从文档:

re.findall(pattern,string,flags = 0)

返回字符串中pattern的所有非重叠匹配,作为字符串列表。

re模块不支持重叠,但regex确实如此。安装regex模块并执行以下操作:

>>> import regex
>>> regex.findall(r'1[\w]+1', '1111001', overlapped=True)
['1111001', '111001', '11001', '1001']
© www.soinside.com 2019 - 2024. All rights reserved.