2024-09-22 20:29:28 发布
网友
我尝试使用pythonre来查找重复特定次数的同一个字母或数字的集合。(.)在识别将要重复的内容方面工作得很好,但我无法找到如何防止它重复不同的字符。以下是我所拥有的:
re
(.)
re.search(r'(.){n}', str)
例如,如果n = 4,那么它将匹配9999中的99997,但如果n = 3,则不匹配。 谢谢
n = 4
9999
99997
n = 3
怎么样
(?:^|(?<=(.)))(?!\1)(.)\2{n-1}(?!\2)
这将:
(?:^|(?<=(.)))
^
(?<=(.))
\1
(?!\1)(.)
\2
\2{n-1}
(?!\2)
(n-1只是象征性的;很明显,您希望用实际的n-1值来替换它,而不是用8-1或其他东西代替)。在
n-1
8-1
重要编辑:以前版本的regex((.)\1{n-1}(?!\1))无法工作,因为它无法解释匹配后面的字符匹配\1。上面的regex解决了这个问题。在
(.)\1{n-1}(?!\1)
怎么样
这将:
(?:^|(?<=(.)))
:确保:^
:要么我们在字符串的开头(?<=(.))
:要么我们不在字符串的开头;然后,在匹配之前捕获字符并将其保存到\1
(?!\1)(.)
:匹配任何不是\1
的字符并将其保存到\2
\2{n-1}
:匹配\2
n-1次(?!\2)
:确保\2
无法匹配(
n-1
只是象征性的;很明显,您希望用实际的n-1值来替换它,而不是用8-1
或其他东西代替)。在重要编辑:以前版本的regex(
(.)\1{n-1}(?!\1)
)无法工作,因为它无法解释匹配后面的字符匹配\1
。上面的regex解决了这个问题。在相关问题 更多 >
编程相关推荐