如何删除单词的最后重复字母

时间:2012-12-15 06:17:52

标签: python regex python-2.7

如何使用python regex将heyyyy转换为hey? 这是我到目前为止所得到的

line="heyyy hoooow are you"
word_normalize=compile(r'(\w)\1+')
word_normalize.sub(r'\1\1',line)

打印hey how are you

我想要打印: hoooow 你是

我只希望缩短结束字母而不缩短其他部分。

如果我想要这样的东西怎么办? hey hoow are you 即结束字符不重复,其他字符最多重复2次。

1 个答案:

答案 0 :(得分:3)

使用\b强制匹配位于单词的末尾。

>>> re.sub(r'(\w)\1+\b', r'\1', line)
'hey hoooow are you'

要使内部字母最多重复两次,请使用\B添加另一个替换,这与\b相反:

>>> re.sub(r'(\w)\1+\B', r'\1\1', re.sub(r'(\w)\1+\b', r'\1', line))
'hey hoow are you'