2016-10-13 5 views
0

とハイフンを置き換えることはありません:正規表現は次のテキストについてドット

comment = """ I took the pill - I realized only side-effect after I went off it how it affected my eating habits - I put on weight - around 10 lbs - in the 2.5 months on it - no control and syndrome - this was counterproductive !""" 

私はreplace hyphen (-) with dot (.)

comment = re.sub (r'(w+\s+)(-)(\s+\w+)', r'\1\. \3 ', comment) 

に正規表現を書いたしかし、それは動作しません。

私は副作用のような2つの単語間のハイフンをドットで置き換えることは望ましくありません。 なぜ私は使えないのですかcomment.replace ('-', '.')

何か提案がありますか?

+3

を使用することができ、使用[ '(\ + \ S + W)( - )(\ S + \ + W)'](https://でregex101.com/r/mP2xSH/1) –

+0

....そして、置換文字列でドットをエスケープする必要はありません。 – volcano

+0

@WiktorStribiżew、ありがとう! – Mary

答えて

4

また、あなたは正規表現にタイプミスがありstr.replace方法

comment.replace('-', '...') 
+1

バズーカを使ってフライをしないためのUV(それはフランス語の表現です、私はあなたがそれを得ることを望みます)とボックスの外で考えています。 –

+1

@Patrick Haungしかし、あなたの解決策では、例えば「副作用」のようにハイフンをドットで置き換えることになります。私はこれが起こることを望んでいない。 – Mary

+0

@Maryスペースで囲まれたハイフンだけを探しているなら、上記の '' - ''を' ' - ''に置き換えてください –

関連する問題