2012-12-15 147 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次。 –

相關問題