我想使用正则表达式查找字符串中的所有交替数字。交替数字定义为两个相等的数字,中间有一个数字;例如,1212 包含 2 个交替(121 和 212),1111 也包含 2 个交替(111 和 111)。我有以下正则表达式代码:

s = "1212"
re.findall(r'(\d)(?:\d)(\1)+', s)

这适用于像“121656”这样的字符串,但不适用于“1212”。我认为这是与重叠匹配有关的问题。我该如何处理?

最佳答案

(?=((\d)\d\2))

使用 lookahead 获取所有重叠匹配项。使用 re.findall 并从元组中获取第一个元素。看演示:

https://regex101.com/r/fM9lY3/54

关于python - 使用正则表达式查找所有出现的交替数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34573648/

10-16 15:31