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