Python | raw文字列(raw string)

Python
スポンサーリンク

Pythonの raw文字列とは?

では、Pythonの raw文字列(ロー文字列) を初心者向けにやさしく、例題を交えて詳しく説明します。


1. まずは「通常の文字列」から

Pythonでは文字列の中で \(バックスラッシュ)を使うと、特別な意味を持つことがあります。
これを エスケープシーケンス と呼びます。

例:

print("こんにちは\nPython")
Python

出力結果:

こんにちは
Python
  • \n は「改行」を意味します。
  • \t は「タブ(空白)」を意味します。

つまり \ の後ろの文字によって、文字列の挙動が変わります。


2. でも「\ をそのまま文字として使いたい」こともある

例えば Windows のフォルダパスを書きたいとき:

print("C:\new\test")
Python

出力結果:

C:
ew	est
  • \n が改行、\t がタブとして解釈されてしまいました。
  • 「そのまま \ を文字として表示したい」のに困っています。

3. そこで登場:raw文字列

文字列の前に r または R を付けます。

print(r"C:\new\test")
Python

出力結果:

C:\new\test
  • r を付けるだけで、バックスラッシュが 特別扱いされず、そのまま表示される ようになります。
  • ファイルパスや正規表現パターンを書くときにとても便利です。

4. 注意点

注意①:末尾に \ を置くとエラー

print(r"C:\new\")
Python
  • これは SyntaxError(文法エラー)になります。
  • Pythonが文字列の終わりとバックスラッシュを混同してしまうからです。

✅ 解決法:

print(r"C:\new" + "\\")
# 出力: C:\new\
Python
  • raw文字列の後ろに通常文字列を連結して書く方法です。

注意②:文字列を囲むクオートに注意

# NG
print(r"彼は"天才"です")
Python
  • raw文字列でもクオート " は文字列の区切りとして扱われます。
  • 解決策:
print(r'彼は"天才"です')
# 出力: 彼は"天才"です
Python

5. 例題で確認

例題①:通常文字列 vs raw文字列

print("C:\\Users\\Python")
print(r"C:\Users\Python")
Python

出力:

C:\Users\Python
C:\Users\Python
  • 通常文字列は \ を出すために \\ と書く必要があります。
  • raw文字列は \ をそのまま書けます。

例題②:改行コードの違い

print("Hello\nWorld")
print(r"Hello\nWorld")
Python

出力:

Hello
World
Hello\nWorld
  • 1行目は \n が改行として働く
  • 2行目は raw文字列なので、\n がそのまま出力されます

例題③:正規表現で使う

import re

pattern = r"\d+"  # 数字が1つ以上
text = "年齢は30歳です"
print(re.findall(pattern, text))
Python

出力:

['30']
  • raw文字列で書くと、\d+ のような正規表現パターンが読みやすくなります。
  • バックスラッシュを二重に書かなくて済むので便利です。

まとめ

  • raw文字列とはr"..." の形で、\ をそのまま文字として扱う文字列。
  • 使うと便利な場面
    • Windowsのファイルパス
    • 正規表現のパターン
    • エスケープシーケンスを避けたい文字列
  • 注意点
    • 末尾に \ を置くとエラー
    • クオート文字("')には注意
Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました