我试图使用python re
来查找一组重复特定次数的相同字母或数字。 (.)
适用于识别将要重复的内容,但我无法找到如何避免重复不同的字符。这里是我有:使用正则表达式匹配相同字符的确切次数
re.search(r'(.){n}', str)
因此,例如,它会从99997
如果n = 4
匹配9999
,但如果n = 3
。
感谢
我试图使用python re
来查找一组重复特定次数的相同字母或数字。 (.)
适用于识别将要重复的内容,但我无法找到如何避免重复不同的字符。这里是我有:使用正则表达式匹配相同字符的确切次数
re.search(r'(.){n}', str)
因此,例如,它会从99997
如果n = 4
匹配9999
,但如果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
比赛背后的早期版本。上面的正则表达式解决了这个问题。
这个网站是你的朋友:http://www.txt2re.com/index-php.php3。 – 2012-04-21 04:57:59
你能澄清你想*匹配什么,你*不想匹配什么?我不明白“我不知道如何防止它重复不同的人物”是应该的。 – 2012-04-21 05:00:46
我想匹配任何重复n次的东西,所以如果9次重复n次我想要9999,或者如果T重复n次我想TTTT,但是我不想'9897如果我说。{4} – cah 2012-04-21 05:03:48