查找字符串中以1对分隔的对的数量

时间:2017-12-17 17:48:59

标签: python regex string matching

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

我的代码如下:

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

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

1 个答案:

答案 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']