文字列から引用符付きのシーケンスを削除しようとしています。私のスクリプト以下の例の場合、かなり動作します:正規表現を使用してエスケープシーケンス(例: "エスケープ文字列")を削除するにはどうすればよいですか?
import re
doc = ' Doc = "This is a quoted string: this is cool!" '
cleanr = re.compile('\".*?\"')
doc = re.sub(cleanr, '', doc)
print doc
は結果(予想通り):
' Doc = '
しかし、私は私が使用してエスケープシーケンスを削除することはできませんよ引用された文の内側に文字列をエスケープしているとき私は正しいものだと思うパターン:
import re
doc = ' Doc = "This is a quoted string: \"this is cool!\" " '
cleanr = re.compile('\\".*?\\"') # new pattern
doc = re.sub(cleanr, '', doc)
print doc
結果
'Doc = this is cool!'
は予想:
'Doc = "This is a quoted string: " '
は、誰もが何が起こっているか知っていますか?パターン'\\".*?\\"'
が間違っている場合、正しいものは何ですか?
は、彼らの両方が原因で暴走エスケープの同じ表現として終わります。この問題を回避するには、生の文字列を使用します。 – TigerhawkT3
その質問は非常によく尋ねられ、明確ですが、私は実際にそれをdownvotingする理由を見ません。 – Maroun