1. はじめに
Pythonで文字列を扱っていると、バックスラッシュ(\)を含むパスや正規表現など、エスケープシーケンスに悩まされる場面があります。そんなときに便利なのが「生文字列(raw文字列)」です。
この記事では、Python|生文字列(raw文字列)を使うケースとその書き方について、具体的なコード例を交えながらわかりやすく解説します。
初心者が混乱しやすい「\\n」「\\t」といった特殊文字の扱い方や、Windowsのファイルパス、正規表現でよく使われる場面など、実務でも役立つ知識が得られます。
2. Pythonにおける生文字列(raw文字列)とは
生文字列(raw文字列)の基本概念
Pythonでは、文字列の中に \n
(改行)や \t
(タブ)といったエスケープシーケンスが含まれていると、特殊な意味に変換されてしまいます。これを防ぎたいときに使うのが「raw文字列」です。
raw文字列は、文字列の前に r
または R
を付けて書きます。エスケープを無視し、文字列をそのまま扱うことができます。
通常の文字列とraw文字列の違い
# 通常の文字列
normal_str = "C:\\Users\\User\\Documents"
# 生文字列(raw文字列)
raw_str = r"C:\Users\User\Documents"
print("通常文字列:", normal_str)
print("生文字列:", raw_str)
実行結果:
通常文字列: C:\Users\User\Documents
生文字列: C:\Users\User\Documents
どちらも見た目は同じですが、通常の文字列では \\
を使ってバックスラッシュをエスケープしています。一方、raw文字列では \
をそのまま書けるのが特徴です。
3. よくある使い方・応用例
① Windowsのファイルパス
Windowsではディレクトリの区切りに \
を使います。これを文字列で表現する場合、raw文字列を使えば見た目どおりに書けるためミスを減らせます。
# Windowsパスをraw文字列で表す
file_path = r"C:\Program Files\MyApp\config.txt"
print(file_path)
実行結果:
C:\Program Files\MyApp\config.txt
② 正規表現のパターン
正規表現では \d
(数字)や \s
(空白)など、バックスラッシュが頻繁に登場します。通常の文字列では \\d
のように二重にする必要がありますが、raw文字列なら \d
のままでOKです。
import re
# 生文字列を使った正規表現
pattern = r"\d+"
result = re.findall(pattern, "123 abc 456")
print(result)
実行結果:
['123', '456']
raw文字列を使うことで、正規表現の読みやすさ・保守性が格段に上がります。
③ 改行やタブなどをそのまま表示したいとき
文字列に含まれる \n
や \t
を、変換せずに「文字として表示したい」場合も、raw文字列が役立ちます。
# \n を文字として表示したい
raw_text = r"改行コードは\nです"
print(raw_text)
実行結果:
改行コードは\nです
4. 注意点・エラー対策
① raw文字列でも最後が「\」だとエラーに
raw文字列ではエスケープを無視しますが、文字列の末尾に単体で \
を置くと、SyntaxError になります。
# NG例:raw文字列の最後が「\」だとエラー
# path = r"C:\Users\User\"
# 対策:末尾にもう一つ \ を追加する
path = r"C:\Users\User\\"
print(path)
実行結果:
C:\Users\User\\
末尾の \
が問題になる場合は、\\
にするか、最後にスペースや他の文字を追加するのが安全です。
② raw文字列の中でも例外はある
raw文字列はエスケープを無視しますが、文字列の終端に関わる文字(例えば ” や ‘)は特別扱いされることがあります。基本は「バックスラッシュで終わるときだけ注意する」と覚えておくとよいでしょう。
5. まとめ
今回はPythonの生文字列(raw文字列)の使い方と使うケースについて解説しました。ポイントをおさらいしましょう。
- raw文字列は
r"文字列"
の形式で書く - バックスラッシュ(\)を含む文字列をエスケープせず扱える
- Windowsパスや正規表現で特に有用
- 末尾が
\
のときはエラーになるため注意
特に、ファイル操作や正規表現を扱う場面では、raw文字列を使うだけでコードの読みやすさ・保守性が格段に向上します。Python初心者の方は早めに使い方をマスターしておくと、実務でも大いに役立ちますよ。
💡学習のコツ: 最初は「rを付けるとバックスラッシュがそのまま使える」と覚えましょう。特に正規表現では必須テクニックです。