用python替换字符串中多次出现的字符

时间:2012-11-11 15:51:41

标签: python regex string

我需要用好的方式替换goooooooooooood这样的词。为此我试过

t.replace(r'(.)\2+',r'\2') 

其中t是像gooooooooooood这样的单词

但这不起作用。

3 个答案:

答案 0 :(得分:3)

您正在寻找的是一个拼写检查程序。有多种方法可以做到这一点,但我觉得很有用的方法是

答案 1 :(得分:2)

您可以使用itertools.groupby()

In [53]: strs="goooooooooooood"

In [54]: from itertools import groupby

In [55]: "".join(k*2 if len(list(g))>=2 else k for k,g in groupby(strs))
Out[55]: 'good'

答案 2 :(得分:0)

正则表达式解决方案

import re

s = "goooooooooooooood"
print re.sub(r'(.)\1{2,}', r'\1', s)

print re.sub(r'(.)\1{3,}', r'\1\1', s)

用好的替换gooooooooooood