2017-02-20 7 views
0

バックスラッシュで識別されるテキスト内のタグを削除しようとしています。たとえば、「He​​llo \ tag world」というフレーズの場合、「Hello world」というフレーズを返したいと思います。私は以下を試しましたが、 '\タグ'を取り除いていません。Regex Python - バックスラッシュ

print re.sub('\\[A-Za-z]+',' ',text) 

私はそれが簡単なことだと確信していますが、わかりません。

ご協力いただきありがとうございます!

+1

正規表現に生の文字列を使用します。 '' \\ ''はあなたの正規表現にリテラルバックスラッシュを入れますが、あなたの正規表現のリテラルバックスラッシュは 'text'のリテラルバックスラッシュと一致しません。正規表現エンジンによってエスケープ文字として扱われます。生の文字列がエスケープする余分なレイヤーが必要です。 – user2357112

答えて

2

でなければなりません:

re.sub('\\\\[A-Za-z]+',' ',text) 

そうでない場合は、'\\'は、正規表現の特殊エスケープ文字として扱われます。

+1

これは有効なオプションですが、通常、生の文字列表記が便利です。 – user2357112

+1

@ user2357112これはまったく問題だ。この回答は完全に有効であり、[this](http://stackoverflow.com/questions/33582162/backslashes-in-python-regular-expressions)はより重複した質問でした。 – miken32