我试图在Python中使用正则表达式和re.findall()
来计算字符串中分隔的1对数。
应用于字符串11110
的正则表达式应返回2
并应用于01101
,它应返回1
。
我的代码如下:
matches = len(re.findall(r'1[\w]+1', str1))
但是应用于110110
它返回1
,因为它只找到子串11011
。我希望它也能找到子串101
。
我的正则表达式是错误的还是re.findall()
不是我应该使用的函数?
答案 0 :(得分:1)
来自文档:
re.findall(pattern,string,flags = 0)
返回字符串中所有非重叠匹配的字符串,作为字符串列表。
re
模块不支持重叠,但regex
支持重叠。安装regex
模块并执行以下操作:
>>> import regex
>>> regex.findall(r'1[\w]+1', '1111001', overlapped=True)
['1111001', '111001', '11001', '1001']