0

我需要用好来替换像 gooooooooooood 这样的词。为此我尝试了

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

其中 t 是一些像 gooooooooooood 这样的词

但这不起作用。

4

3 回答 3

3

您正在寻找的是拼写检查器。有多种方法可以做到,但我觉得有用的方法很少

于 2012-11-11T16:18:05.220 回答
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'
于 2012-11-11T15:54:51.833 回答
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 替换为 good

于 2012-11-11T15:59:12.523 回答