我試圖找到重複3次或更多字符來代替3個或更多相同的字符,例如我要採取以下字符串:Python的應用re.sub 1
('aaa'
,'buuuuut'
,'oddddddddd'
)
,並只用一個取代三個或三個以上的信件的所有出現:
('a'
,'but'
,'od'
)。
我試過下面的代碼
s=re.sub(r'(\w)\3*',r'(\w)',s)
,但它會導致編譯錯誤。
我需要使用哪些正則表達式?
我試圖找到重複3次或更多字符來代替3個或更多相同的字符,例如我要採取以下字符串:Python的應用re.sub 1
('aaa'
,'buuuuut'
,'oddddddddd'
)
,並只用一個取代三個或三個以上的信件的所有出現:
('a'
,'but'
,'od'
)。
我試過下面的代碼
s=re.sub(r'(\w)\3*',r'(\w)',s)
,但它會導致編譯錯誤。
我需要使用哪些正則表達式?
看看這個:
>>> mystr = 'buuuuuttttt'
>>> re.sub(r'(.)\1{2,}', r'\1', mystr)
'but'
>>> mystr = 'buttt'
>>> re.sub(r'(.)\1{2,}', r'\1', mystr)
'but'
>>>
也許嘗試這樣的事:
s = re.sub(r'(\w)\1\1+', r'\1', s)
@fanti我試過你的正則表達式上 'buuuuuttttt',但它會導致 'T'。可能是什麼問題呢? – ytrewq
@CosmicRabbitMediaInc - 修正了它。 – iCodez
thanx!接受了答案:) – ytrewq