Pythonで文字列内のエスケープシーケンスを処理する 質問する

Pythonで文字列内のエスケープシーケンスを処理する 質問する

ファイルやユーザーからの入力を受け取ると、エスケープシーケンスを含む文字列が返されることがあります。エスケープシーケンスを処理したいのですがPythonが文字列リテラル内のエスケープシーケンスを処理するのと同じ方法

たとえば、次myStringのように定義されているとします。

>>> myString = "spam\\neggs"
>>> print(myString)
spam\neggs

次のような機能を持つ関数 ( と呼びますprocess) が必要です:

>>> print(process(myString))
spam
eggs

関数が Python のすべてのエスケープ シーケンス (上記のリンクの表にリストされています) を処理できることが重要です。

Python にはこれを行う関数がありますか?

ベストアンサー1

正しい方法は、「文字列エスケープ」コードを使用して文字列をデコードすることです。

>>> myString = "spam\\neggs"
>>> decoded_string = bytes(myString, "utf-8").decode("unicode_escape") # python3 
>>> decoded_string = myString.decode('string_escape') # python2
>>> print(decoded_string)
spam
eggs

AST や eval は使用しないでください。文字列コーデックを使用する方がはるかに安全です。

おすすめ記事