2016-12-08 13 views
2

セミコロンの後に来る単語を削除する正規表現を書くにはどうすれば最初のピリオドマークになるでしょうか?例えば正規表現でセミコロンとピリオドの間の文字を削除する

try to be nice; underastand people. start fresh. 

私は "人々を理解し、" 削除して、これは私の正規表現ですが、悲しいことに、それは動作しません

try to be nice. start fresh 

のようなものを持ちたい:

sentence = ''.join(re.sub(r';.*?.', '.', sentence)) 

ありがとう!

+0

を参照してください。あなたはあなたの正規表現を利用するときに何を得ますか?それが動作していないことをどのように知っていますか? – CGritton

+0

あなたはドットをエスケープするのを忘れました。 'r ';。*?\。'' –

答えて

3

あなたはドットをエスケープするのを忘れました:r';.*?\.'。また、ここにはjoinは必要ありません。文字列をre.subに渡すと、後に文字列が得られます。それは文字通りのドット以外の;と1+文字にマッチしますよう

r';[^.]+'正規表現は(そう、あなたは空の文字列に置き換えることができます)のに良さそうです:

import re 
sentence = "try to be nice; underastand people. start fresh." 
sentence = re.sub(r';[^.]+', '', sentence) 
print(sentence) 
# => try to be nice. start fresh. 

Python demo

関連する問題