Python | 正規表現での raw文字列利用

Python
スポンサーリンク

正規表現と raw文字列

Pythonで正規表現を使うときに raw文字列(r"..." を使うのは、実はほぼ必須といっていいくらい大事なんです。初心者向けに整理してみます。


1. なぜ raw文字列を使うの?

正規表現では \d(数字)、\s(空白)、\w(英数字やアンダースコア)など、バックスラッシュを含むパターンをよく使います。

でも、Pythonの通常の文字列では \ が「エスケープ記号」として解釈されてしまいます。

  • 例: "\n" は「改行」になってしまう

👉 そこで raw文字列 を使うと、\ をそのまま扱えるので、正規表現が書きやすくなるのです。


2. 例題で理解しよう

例題1: 数字を探す

import re

text = "abc123def456"

# 通常の文字列で書く場合(ややこしい)
pattern1 = "\\d+"   # \d+ を表すには \\d+ と書かないといけない
print(re.findall(pattern1, text))  # ['123', '456']

# raw文字列で書く場合(シンプル!)
pattern2 = r"\d+"
print(re.findall(pattern2, text))  # ['123', '456']
Python

👉 r"\d+" と書けば、\d+ をそのまま書けるので読みやすい。


例題2: 空白で分割

import re

text = "apple orange   banana"

# 空白文字にマッチする \s+
pattern = r"\s+"
print(re.split(pattern, text))
# 出力: ['apple', 'orange', 'banana']
Python

👉 \s+ は「1つ以上の空白」を意味します。raw文字列を使うとそのまま書けます。


例題3: バックスラッシュを含む文字列

import re

text = r"C:\Users\Python\test"

# バックスラッシュを探す
pattern = r"\\"
print(re.split(pattern, text))
# 出力: ['C:', 'Users', 'Python', 'test']
Python

👉 \\ で「バックスラッシュ1つ」にマッチします。
正規表現でも \ は特別な意味を持つので、\\ と書く必要があります。
でも raw文字列を使わないと "\\\\“ と4つ書かないといけなくなり、さらにややこしくなります。


3. まとめ

  • 正規表現では \d, \s, \w など バックスラッシュを多用する
  • 通常の文字列だと \\d のように二重に書かないといけない
  • raw文字列(r"...")を使えば、\d とそのまま書ける
  • 読みやすく、ミスも減るので、正規表現では基本的に raw文字列を使うのがベスト

👉 ここまでで「なぜ raw文字列が正規表現で便利なのか」が分かったと思います。

Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました