1

如何转换heyyyyhey使用 python 正则表达式?这是我到目前为止得到的

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 次怎么办。

4

1 回答 1

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'
于 2012-12-15T06:19:24.170 回答