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