我试图找到重复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