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

2024-03-29 04:37:02 发布

您现在位置:Python中文网/ 问答频道 /正文

121426<;-这里,1是一个交替重复的数字。在

523563<;-在这里,没有数字是交替重复的数字。在

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

333567<;-这里,3是一个交替重复的数字。在

我发现re.findall(r'(?=(\d)\d\1)',P)是社论中的解决方案,但我不能理解它。在

编辑-不允许使用if条件。在


Tags: ltre编辑if数字解决方案条件findall
2条回答

您可以使用lookaheads使用此正则表达式:

(\d)(?=\d\1)

{a1}

说明:

  • (\d):匹配并捕获组1中的一个数字
  • (?=:开始向前看
    • \d:匹配任何数字
    • \1:返回到捕获组1
  • ):结束展望

您可以在不使用正则表达式的情况下在列表理解中使用zip()来完成此操作:

>>> s = '552523'
>>> [a for a, b in zip(s, s[2:]) if a == b]
['5', '2']

相关问题 更多 >