如何找到交替的重复数字对?

Vik*_*dav 7 python regex python-3.x

121426 < - 这里,1是交替的重复数字.

523563 < - 这里,NO数字是交替的重复数字.

552523 < - 这里,2和5都是交替的重复数字.

333567 < - 这里,3是交替的重复数字.

re.findall(r'(?=(\d)\d\1)',P)在社论中找到了解决方案但却无法理解它.

编辑 - 不允许使用if条件.

Chr*_*nds 9

你可以zip()在列表理解中没有使用正则表达式的情况下执行此操作:

>>> s = '552523'
>>> [a for a, b in zip(s, s[2:]) if a == b]
['5', '2']
Run Code Online (Sandbox Code Playgroud)


anu*_*ava 8

您可以通过先行方式使用此正则表达式:

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

正则演示

说明:

  • (\d):匹配并捕获第1组中的数字
  • (?=:开始提前
    • \d:匹配任意数字
    • \1:向后引用捕获的第1组
  • ):提前结束