1

python regexheyyyyを使用するように変換するには? 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 回繰り返されます。

4

1 に答える 1

3

\b一致を単語の最後に強制するために使用します。

>>> re.sub(r'(\w)\1+\b', r'\1', line)
'hey hoooow are you'

内側の文字を最大 2 回繰り返すには、 を使用して別の置換を追加します\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 に答える