Pythonで「\\」を「\」に置き換える方法|バックスラッシュのエスケープ解除テクニック
Pythonでは、エスケープ処理された文字列に含まれる「\\」(二重のバックスラッシュ)を「\」(単一のバックスラッシュ)へ置き換えたい、つまりエスケープを解除したい場面があります。ここでは、その代表的な2つの方法をわかりやすく解説します。
方法1:ast.literal_eval を使う
1つ目の方法は、標準ライブラリの ast.literal_eval を使って文字列を評価するアプローチです。この方法では、対象の文字列をもう一段外側の引用符で囲む必要がある点に注意してください。
>>> import ast
>>> a = '"Hello,\\nworld"'
>>> print(ast.literal_eval(a))
Hello,
world
この例では、変数 a の中身が文字列リテラルとして評価され、「\n」というエスケープシーケンスが実際の改行に展開されて出力されます。
方法2:decode('string_escape') を使う
2つ目の方法は、文字列クラスが持つ decode('string_escape') メソッドを利用するものです。
>>> print "Hello,\\nworld".decode('string_escape')
Hello,
world
ただし、string_escape はPython 2専用のエンコーディングであり、Python 3では使用できません。Python 3環境では、代わりに codecs.decode() を使う方法が一般的です。
>>> import codecs
>>> print(codecs.decode("Hello,\\nworld", 'unicode_escape'))
Hello,
world
まとめ
シンプルかつ安全にエスケープを解除したい場合は ast.literal_eval がおすすめです。一方、Python 2のレガシー環境では decode('string_escape') も手軽な選択肢となります。使用しているPythonのバージョンに合わせて、適切な方法を選びましょう。
-
Pythonで文字列を逆順にする方法|スライスとreversed()の使い方を解説
Pythonでは、文字列スライスやrange演算子を活用することで、文字列を簡単に逆順(反転)にすることができます。この記事では、代表的な2つの方法をわかりやすく解説します。 方法1:スライス記法 [::-1] を使う(推奨・高速) 最もシンプルで一般的なのが、スライス記法を使う方法です。ステップに -1 を指定するだけで、文字列を後ろから前へ一文字ずつ取り出せます。 >>> Hello[::-1] olleH >>> Halloween[::-1] neewollaH スライスの仕組み 角括弧 [] の中には、コロン「:」で区切った3つの値を指定できます
-
Pythonで文字列内のタブを複数のスペースに展開・置換する方法
Pythonで文字列内のタブを複数のスペースに展開する方法Pythonでは、文字列クラスに標準で用意されている replace() メソッドを使うことで、タブ文字(\t)を任意の数のスペースに簡単に置き換えられます。このメソッドは「置き換え対象の文字列」と「置き換え後の文字列」を引数として受け取り、文字列オブジェクトに対して呼び出します。print(Hello\tWorld\tin\tthis string.replace(\t, ))出力:Hello World in this string上記の例では、各タブ文字が半角スペース4つに置き換えられています。必要に応じ