使用正则表达式查找所有出现的交替数字

use*_*926 11 python regex string

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

s = "1212"
re.findall(r'(\d)(?:\d)(\1)+', s)
Run Code Online (Sandbox Code Playgroud)

这适用于像"121656"这样的字符串,但不适用于"1212".这与我认为的重叠匹配有关.我该怎么处理?

vks*_*vks 14

(?=((\d)\d\2))
Run Code Online (Sandbox Code Playgroud)

使用前瞻来获得所有重叠的匹配.使用re.findall并从元组中获取第一个元素.看演示:

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