Python|生文字列(raw文字列)を使うケースとその書き方

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を付けるとバックスラッシュがそのまま使える」と覚えましょう。特に正規表現では必須テクニックです。

タイトルとURLをコピーしました