我正在尝试使用 pythonre来查找一组重复特定次数的相同字母或数字。 (.)可以很好地识别将要重复的内容,但我找不到如何防止它只是重复不同的字符。这是我所拥有的:
re.search(r'(.){n}', str)
因此,例如,它将匹配if 9999,但不匹配 if 。
谢谢99997n = 4n = 3
怎么样
(?:^|(?<=(.)))(?!\1)(.)\2{n-1}(?!\2)
这将:
(?:^|(?<=(.))): 确保:
^: 要么我们在字符串的开头(?<=(.)): 要么我们不在字符串的开头;然后,捕获匹配前的字符并将其保存到\1(?!\1)(.):匹配任何不是的字符\1并将其保存到\2\2{n-1}: 匹配\2n-1 次(?!\2): 确保\2不能匹配期待(这n-1只是象征性的;显然你想用 n-1 的实际值替换它,而不是用8-1或其他东西)。
重要编辑:正则表达式 ( ) 的先前版本(.)\1{n-1}(?!\1)不起作用,因为它无法解释匹配\1背后的字符匹配。上面的正则表达式解决了这个问题。