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

我想使用正则表达式找到字符串中的所有交替数字.一个交替的数字被定义为两个相等的位数之间有一个数字;例如,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

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。