Python re.sub用1替换3个或更多相同的字符

ytr*_*ewq 2 python regex

我正在尝试查找重复3次或更多次的字符,例如我想要使用以下字符串:

('aaa','buuuuut','oddddddddd')

并且仅用一个替换所有出现的三个或更多字母:

('a','but','od').

我试过跟随代码

s=re.sub(r'(\w)\3*',r'(\w)',s)
Run Code Online (Sandbox Code Playgroud)

但它会导致编译错误.

我需要使用什么正则表达式?

iCo*_*dez 6

看这个:

>>> mystr = 'buuuuuttttt'
>>> re.sub(r'(.)\1{2,}', r'\1', mystr)
'but'
>>> mystr = 'buttt'
>>> re.sub(r'(.)\1{2,}', r'\1', mystr)
'but'
>>>
Run Code Online (Sandbox Code Playgroud)

  • 这么多的屁股.孩子们会怎么想?:P (2认同)