11

ここで相対的なpython初心者。変更できないプログラムから出力されたテキスト文字列があります。議論のために言いましょう:

text = "This text . Is to test . How it works ! Will it! Or won't it ? Hmm ?"

句読点の前のスペースを削除したいのですが、2 番目のスペースは削除しません。私は正規表現でそれをやろうとしてきましたが、検索用語として match='\s[\?.!\"]\s' を使用して、必要なインスタンスを一致させることができることを知っています。

x=re.search('\s[\?\.\!\"]\s',text)

re.sub を使用して検索語を先頭の空白を削除して置き換える方法はありますか? 続行する方法についてのアイデアはありますか?

4

2 に答える 2

5

re.subの代わりに使用しre.searchます。

>>> text = "This text . Is to test . How it works ! Will it! Or won't it ? Hmm ?"
>>> re.sub(r'\s+([?.!"])', r'\1', text)
"This text. Is to test. How it works! Will it! Or won't it? Hmm?"

特殊文字は 内で意味を失うため?., !,"内でエスケープする必要はありません。[][]

于 2013-09-18T17:49:17.500 に答える