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

我要打印:嘿,你好吗

我只希望将结尾字母缩短,而不要缩短其他部分。

如果我想要这样的话
hey hoow are you
即结尾字符不重复,其他字符最多重复2次。

最佳答案

使用\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'

关于python - 如何删除单词的最后一个重复字母,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13889903/

10-12 18:21