Sum*_*mit 10 python regex substr
我有一个字符串'aabaacaba'.从左边开始,我试图得到所有大小> = 2的子串,后面会出现在字符串中.例如,aa再次出现在字符串中,情况也是如此ab.
我写了以下正则表达式代码:
re.findall(r'([a-z]{2,})(?:[a-z]*)(?:\1)', 'aabaacaba')
Run Code Online (Sandbox Code Playgroud)
我得到['aa']作为答案.正则表达式错过了ab模式.我认为这是因为人物重叠.请建议一个解决方案,以便修复表达式.谢谢.
您可以使用不使用匹配字符串的前瞻断言:
>>> re.findall(r'(?=([a-z]{2,})(?=.*\1))', 'aabaacaba')
['aa', 'aba', 'ba']
Run Code Online (Sandbox Code Playgroud)
注意:aba匹配而不是ab.(尽可能长时间匹配)