2012-12-15 80 views
1

如何使用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次。

回答

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' 
+0

如果我想这样的事情 '哎hoow是你' 即结束字符不重复,其他字符重复最多2次。 –

相关问题