正则表达式字符串和子字符串

时间:2017-05-14 02:04:26

标签: python regex substr

我有一个字符串'aabaacaba'。从左开始,我试图获得所有大小的子串> gt; = 2,它出现在字符串的后面。例如,aa再次出现在字符串中,ab也是如此。

我写了以下正则表达式代码:

re.findall(r'([a-z]{2,})(?:[a-z]*)(?:\1)', 'aabaacaba')

我得到[' aa']作为答案。正则表达式错过了ab模式。我认为这是因为人物重叠。请建议一个解决方案,以便修复表达式。谢谢。

1 个答案:

答案 0 :(得分:8)

您可以使用不使用匹配字符串的look-ahead assertion

>>> re.findall(r'(?=([a-z]{2,})(?=.*\1))', 'aabaacaba')
['aa', 'aba', 'ba']

注意:aba匹配而不是ab。 (试图尽可能长时间匹配)

相关问题