カテゴリ: Python 更新日: 2025/06/29

Pythonの正規表現(reモジュール)の基本!パターンマッチングを学ぼう

Pythonの正規表現(reモジュール)の基本!パターンマッチングを学ぼう
Pythonの正規表現(reモジュール)の基本!パターンマッチングを学ぼう

先生と生徒の会話形式で理解しよう

生徒

「Pythonで、特定の文字だけを探したり、文字のパターンを見つけたりすることってできますか?」

先生

「はい、それには正規表現(せいきひょうげん)という方法があります。Pythonではreモジュールを使って、それが簡単にできますよ。」

生徒

「正規表現って難しそうですが、初心者でも使えるんですか?」

先生

「もちろんです。まずは基本だけをゆっくり学べば大丈夫です。一緒にパターンマッチングの基本を学んでいきましょう!」

-

1. 正規表現とは?初心者向けにやさしく解説

1. 正規表現とは?初心者向けにやさしく解説
1. 正規表現とは?初心者向けにやさしく解説

正規表現とは、文字の並び方のルール(パターン)を使って、文字列の中から特定の文字や形式を探す方法のことです。

たとえば、「メールアドレスを見つけたい」「電話番号だけ抜き出したい」「数字だけ抽出したい」といったときに役立ちます。

Pythonでは、re(アール・イー)というモジュールを使って正規表現を扱います。

2. reモジュールの使い方と基本の関数

2. reモジュールの使い方と基本の関数
2. reモジュールの使い方と基本の関数

reモジュールには、いくつかの便利な関数があります。初心者の方は、まずこの3つを覚えましょう。

  • re.search():文字列の中にパターンがあるか調べる
  • re.findall():すべてのマッチをリストで返す
  • re.sub():マッチした文字を別の文字に置き換える

では、実際に使ってみましょう。


import re

text = "私の電話番号は090-1234-5678です"
pattern = r"\d{2,4}-\d{2,4}-\d{4}"

result = re.search(pattern, text)
print(result.group())

090-1234-5678

\dは「数字」を表す正規表現の記号です。{2,4}は「2文字から4文字までの繰り返し」を意味します。

3. パターンマッチングとは何か?

3. パターンマッチングとは何か?
3. パターンマッチングとは何か?

パターンマッチングとは、ある文字列が「決められたルール(パターン)」に合っているかを調べることです。

たとえば「abc123」という文字列が、「英字が3つ+数字が3つ」というパターンに合うか調べたりします。


import re

text = "abc123"
pattern = r"[a-z]{3}\d{3}"

if re.fullmatch(pattern, text):
    print("マッチしました!")
else:
    print("マッチしませんでした。")

マッチしました!

4. よく使う正規表現の記号一覧

4. よく使う正規表現の記号一覧
4. よく使う正規表現の記号一覧

はじめての方でも覚えやすいように、よく使う記号を以下にまとめました。

  • .:なんでも1文字
  • \d:数字(0〜9)
  • \D:数字以外
  • \w:英数字とアンダースコア
  • \W:それ以外
  • \s:空白文字(スペース、タブなど)
  • +:1回以上の繰り返し
  • *:0回以上の繰り返し
  • ?:0回または1回
  • []:中のどれか1文字
  • {n}:n回の繰り返し
-

5. メールアドレスを見つける例

5. メールアドレスを見つける例
5. メールアドレスを見つける例

正規表現を使えば、文章の中からメールアドレスだけを見つけることも可能です。


import re

text = "お問い合わせは info@example.com までお願いします。"
pattern = r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"

result = re.search(pattern, text)
print(result.group())

info@example.com

このように、複雑に見えるパターンでも、分解して覚えれば使いこなせるようになります。

6. 文字の置き換え(re.subの使い方)

6. 文字の置き換え(re.subの使い方)
6. 文字の置き換え(re.subの使い方)

文章の中の文字を別の文字に一括で置き換えることもできます。

たとえば、全角の数字を半角に置き換えるなどの処理が可能です。


import re

text = "電話:090-1234-5678、FAX:03-9876-5432"
result = re.sub(r"\d{2,4}-\d{2,4}-\d{4}", "非公開", text)
print(result)

電話:非公開、FAX:非公開

7. 正規表現の使い方を練習しよう

7. 正規表現の使い方を練習しよう
7. 正規表現の使い方を練習しよう

実際に自分で文字列を作って、どんな文字がマッチするのかを試してみましょう。文字列を変更しながら何度も実行することで、自然に身についてきます。

初心者の方は、まずは re.search()re.findall() を中心に、パターンマッチングの感覚をつかむことから始めましょう。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
Pythonのエラーメッセージの読み方!よくあるエラーと解決方法
PHPの関数(function)の基本を完全ガイド!初心者でもわかる使い方
Pythonの条件式でNoneを判定する方法!is None vs == None の違い
Pythonのpass文とは?一時的なコードブロックをスキップする方法
人気記事
No.1
Java&Spring記事人気No1
PHPの配列をソートする方法!sort, rsort, asort, ksortの使い方を丁寧に解説します!
No.2
Java&Spring記事人気No2
PHPの関数(function)の基本を完全ガイド!初心者でもわかる使い方
No.3
Java&Spring記事人気No3
PHPとは?初心者向けにわかりやすく解説
No.4
Java&Spring記事人気No4
PHP の文字列の基本操作(連結・切り出し・長さ)の使い方
-