我需要用goooooooooooood替换字词。为此,我试图用python替换字符串中的多个字符
t.replace(r'(.)\2+',r'\2')
其中t是像gooooooooooood
一些字,但是这并不工作。
我需要用goooooooooooood替换字词。为此,我试图用python替换字符串中的多个字符
t.replace(r'(.)\2+',r'\2')
其中t是像gooooooooooood
一些字,但是这并不工作。
正则表达式的解决方案
import re
s = "goooooooooooooood"
print re.sub(r'(.)\1{2,}', r'\1', s)
或
print re.sub(r'(.)\1{3,}', r'\1\1', s)
要具有良好的
感谢您的解决方案! – ami91
您可以使用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'
哈,+1 - itertools的另一个很酷的用法。 – RocketDonkey
取代gooooooooooood你是什么样子因为是拼写检查器。这样做有它的多种方法,但一些方法,我发现有用的是
没有意义,为什么要goooooooooooood是好事,而不是神? – Abhijit
't'似乎是一个字符串,这意味着你没有使用正则表达式,而是在这里进行常规字符替换。 – mata
当用户输入gooooood时,他最可能指的是好而不是上帝,例如:这里的汉堡是goooooooooooood – ami91