Skip to main content
 首页 » 编程设计

python之如何使用 Python 减少字符串中的重复字符

2025年05月04日23bhlsheji

有没有办法将重复字符减少到特定数量,例如,如果我们有这个字符串。

“我喜欢它,thaaaaaaank 你”

预期输出:“I liiiike it thaaaank you”

因此,如果重复的字符超过 4 个,例如,它应该减少到只有四个字符,如果它小于或等于 4,那么单词应该保持不变。

请您参考如下方法:

>>> import re 
>>> s="I liiiiked it, thaaaaaaank you" 
>>> re.sub(r"(.)(\1{3})(\1+)", r"\1\2", s) 
'I liiiiked it, thaaaank you' 

此正则表达式查找 3 个组。

第一个是任意字符。第二个是相同字符的 3 个以上,第三个是第一个字符的一个或多个。

然后这 3 组被第 1 组和第 2 组替换

还有一个更简单的方法

>>> re.sub(r"(.)\1{4,}", r"\1"*4, s) 
'I liiiiked it, thaaaank you' 

这次只有一组(.),就是匹配的第一个字母。这后面必须跟同一个字母 4 次或更多次 \1{4,}。所以它匹配 5 个或更多相同的字母。替换的只是那个字母重复了 4 次。