Pythonでのエスケープシーケンスの解説
エスケープシーケンスとは
エスケープシーケンスとは、プログラム内で特殊な動作を指示するために使われる文字列内の特定のパターンのことです。通常の文字列に特別な意味を持たせたり、表示しづらい文字(改行やタブなど)を扱う際に使用されます。Pythonでは、バックスラッシュ(\
)を用いてエスケープシーケンスを定義します。
よく使われるエスケープシーケンス
\n
– 改行\t
– 水平タブ\\
– バックスラッシュそのもの\'
– シングルクオート\"
– ダブルクオート\r
– キャリッジリターン\b
– バックスペース\f
– フォームフィード\uXXXX
– Unicode文字(16ビット)\UXXXXXXXX
– Unicode文字(32ビット)\xXX
– 16進数で指定する文字
Unicodeと特殊文字の扱い
Pythonでは、Unicode文字列をエスケープシーケンスを用いて表現できます。たとえば、\u3042
は「あ」という文字を表します。これにより、日本語や絵文字などの特殊文字も簡単に扱えます。
print("\u3053\u3093\u306b\u3061\u306f") # 「こんにちは」を出力
生文字列 (Raw String) の利用
エスケープシーケンスを無効にしたい場合は、生文字列(raw string
)を使用します。これは、文字列の先頭にr
を付けることで実現できます。
print(r"これはエスケープシーケンスを無視します: \n \t \\")
上記のコードを実行すると、エスケープシーケンスが解釈されずそのまま出力されます。
正規表現でのエスケープシーケンス
Pythonの正規表現ライブラリ(re
)を使用する場合、エスケープシーケンスが頻繁に登場します。たとえば、ピリオド(.
)やアスタリスク(*
)といった特殊文字を正確にマッチさせるには、エスケープが必要です。
import re
pattern = r"\."
text = "これはピリオドを含む文です。"
result = re.findall(pattern, text)
print(result) # ['。']
実践例
以下に、エスケープシーケンスを活用した実践例を示します。
ファイルパスの表示
# 通常のエスケープシーケンス
file_path = "C:\\Users\\User\\Documents\\file.txt"
print(file_path)
# 生文字列を使用
file_path_raw = r"C:\Users\User\Documents\file.txt"
print(file_path_raw)
改行とタブの使用
print("名前\t年齢\t住所\n田中\t25\t東京\n佐藤\t30\t大阪")
Unicodeで絵文字を表示
print("\U0001F600") # 😀 (笑顔の絵文字)
正規表現で特殊文字を検索
import re
text = "メールアドレスはtest@example.comです。"
pattern = r"\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}\b"
match = re.search(pattern, text)
if match:
print(f"見つかったメールアドレス: {match.group()}")
バックスラッシュそのものの出力
print("バックスラッシュ: \\")