我試圖使用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