正则表达式字符串和子字符串
regex string and substring
我有一个字符串'aabaacaba'
。从左边开始,我试图获取所有大小 >=2 的子字符串,它们出现在字符串的后面。例如,aa
再次出现在字符串中,ab
也是如此。
我写了以下正则表达式代码:
re.findall(r'([a-z]{2,})(?:[a-z]*)(?:)', 'aabaacaba')
我得到 ['aa'] 作为答案。正则表达式缺少 ab 模式。我认为这是因为字符重叠。请提出一个解决方案,以便可以修复表达式。谢谢你。
您可以使用不消耗匹配字符串的 look-ahead assertion:
>>> re.findall(r'(?=([a-z]{2,})(?=.*))', 'aabaacaba')
['aa', 'aba', 'ba']
注意:aba
匹配而不是 ab
。 (尽量匹配)
我有一个字符串'aabaacaba'
。从左边开始,我试图获取所有大小 >=2 的子字符串,它们出现在字符串的后面。例如,aa
再次出现在字符串中,ab
也是如此。
我写了以下正则表达式代码:
re.findall(r'([a-z]{2,})(?:[a-z]*)(?:)', 'aabaacaba')
我得到 ['aa'] 作为答案。正则表达式缺少 ab 模式。我认为这是因为字符重叠。请提出一个解决方案,以便可以修复表达式。谢谢你。
您可以使用不消耗匹配字符串的 look-ahead assertion:
>>> re.findall(r'(?=([a-z]{2,})(?=.*))', 'aabaacaba')
['aa', 'aba', 'ba']
注意:aba
匹配而不是 ab
。 (尽量匹配)