0
今はファイルを文字列として取り込み、それらをjsonにフォーマットします。ファイルにはエスケープする\ r、\ n文字が含まれていますが、\\ rや\\ nのようにエスケープされた不正な文字がすでに存在するファイルにはjsonオブジェクトがあります。ですから、今は\ r \ nの文字を\\ r \\ nに置き換えたいのですが、その前に\\ r \\ nを付けてください。\python regex:既にエスケープされていない場合に限り、不正な文字をエスケープします
私はこれを以下に試してみましたが、なぜうまくいかないのか分かりません
re.sub(r'[^\][\n]', r'\\\\n', s)
任意の提案があります。
それぞれの2番目の置換は何ですか?の文字をすべて置き換えたら、 '\\\ r' ==' 'という文字列は残っていないと思われます。 –
turbulencetoo
最初の答えがうまくいきました!ありがとう!正規表現のバージョン –
を私のテストからあなたの文字列で試してみましょう。二重置換は必要ではありません。http://pastebin.com/v9DTn0hpを見てください。その理由は、ASCII 13のキャリッジリターンだけに影響を与える最初の置換がリテラルのバックスラッシュ(ASCII 92)に続くリテラルr(ASCII 114) – turbulencetoo