1. ホーム
  2. python

[解決済み] バックスラッシュでエスケープされた文字列のエスケープを解除するには?

2022-02-11 12:01:57

質問

ある文字列が、他の文字列のバックスラッシュ・エスケープ版であるとします。 Pythonで、その文字列をアンエスケープする簡単な方法はありますか? 例えば、以下のようなことができます。

>>> escaped_str = '"Hello,\\nworld!"'
>>> raw_str = eval(escaped_str)
>>> print raw_str
Hello,
world!
>>> 

しかし、その場合、eval()に(おそらく信頼されていない)文字列を渡すことになり、セキュリティ上のリスクがあります。 標準ライブラリに、文字列を受け取って、セキュリティに影響を与えない文字列を生成する関数はないでしょうか?

解決方法は?

>>> print '"Hello,\\nworld!"'.decode('string_escape')
"Hello,
world!"