[Python] 正規表現(re)を使用した置換で置換後文字列のエスケープシーケンスが展開されてしまう問題の対処
環境
Python 3.7.9
問題
以下のコードにて “kuso\n\nkuso” と出力されてほしいところに、
“kuso
kuso” と表示されてしまう。
出力
対処
re — 正規表現操作 — Python 3.7.10 ドキュメント
公式ドキュメントによると、replにエスケープシーケンス文字列が含まれるとエスケープ処理が行われてしまうようなので以下どちらかで対処。
- 文字列変数をraw文字列に変換するrepr()を使用
先頭と末尾に ‘ が付かないようにスライスも使用。
- 一旦ダミー文字列に変換してstring.replace()で置換。
出力
おわい
re.sub() に repl はエスケープ処理しないオプションとか無いのでしょうか?
おわい