我正在尝试查找重复 3 次或更多次的字符,例如我想采用以下字符串:
( '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 = 'abbcccdddd'
>>> s = re.sub(r'(\w)\1(\1+)',r'\1',s)
>>> s
'abbcd'
也许尝试这样的事情:
s = re.sub(r'(\w)\1\1+', r'\1', s)