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'彼は"天才"です')
# 出力: 彼は"天才"です
Python5. 例題で確認
例題①:通常文字列 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のファイルパス
- 正規表現のパターン
- エスケープシーケンスを避けたい文字列
- 注意点:
- 末尾に
\を置くとエラー - クオート文字(
"や')には注意
- 末尾に
