2024-09-29 22:36:20 发布
网友
我有一个字符串'aabaacaba'。从左边开始,我试图得到所有大小的子字符串>;=2,它们将出现在字符串的后面。例如,aa再次出现在字符串中,ab也是如此。在
'aabaacaba'
aa
ab
我写了以下regex代码:
re.findall(r'([a-z]{2,})(?:[a-z]*)(?:\1)', 'aabaacaba')
我得到的答案是['aa']。正则表达式缺少ab模式。我想这是因为重叠的字符。请提出一个解决方案,以便修正表达式。谢谢您。在
您可以使用不使用匹配字符串的look-ahead assertion:
>>> re.findall(r'(?=([a-z]{2,})(?=.*\1))', 'aabaacaba') ['aa', 'aba', 'ba']
注意:aba匹配,而不是{}。(尽可能长地匹配)
aba
您可以使用不使用匹配字符串的look-ahead assertion:
注意:}。(尽可能长地匹配)
aba
匹配,而不是{相关问题 更多 >
编程相关推荐