カテゴリ: Python 更新日: 2025/12/12

Pythonの正規表現入門!reモジュールを使った文字列パターンマッチングを学ぼう

Pythonの正規表現入門!reモジュールを使った文字列パターンマッチングを学ぼう
Pythonの正規表現入門!reモジュールを使った文字列パターンマッチングを学ぼう

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

生徒

「先生、Pythonで文章の中から特定の文字や言葉を探したいんですが、何か良い方法はありますか?」

先生

「Pythonには『正規表現(せいきひょうげん)』という便利な方法があります。文字列のパターンを指定して、複雑な検索や抽出ができるんですよ。」

生徒

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

先生

「もちろんです!Pythonではreモジュールを使うことで、初心者でも簡単に正規表現を使って文字列を扱えるようになりますよ。一緒に学んでいきましょう!」

1. 正規表現(せいきひょうげん)とは?

1. 正規表現(せいきひょうげん)とは?
1. 正規表現(せいきひょうげん)とは?

正規表現とは、「特定のパターンに合った文字列」を探したり取り出したりする方法です。たとえば「電話番号」「メールアドレス」「数字だけ」「特定の単語」など、決まった形の文字列を探すときに便利です。

例えば、「数字だけを見つけたい」「abcで始まる単語を探したい」といった条件で検索ができます。普通の検索(たとえばinなど)よりも、もっと柔軟に探せるのが特徴です。

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

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

Pythonで正規表現を使うには、まずreというモジュールを読み込む必要があります。「モジュール」とは、Pythonに最初から入っている便利な道具箱のようなものです。


import re

これでreモジュールが使えるようになります。

3. パターンにマッチする文字列を探す:re.search

3. パターンにマッチする文字列を探す:re.search
3. パターンにマッチする文字列を探す:re.search

re.search()は、文字列の中からパターンに合った部分を探して、最初に見つかったものを教えてくれる関数です。


import re

text = "今日は2025年6月8日です。"
result = re.search(r"\d{4}年", text)

if result:
    print("見つかりました:", result.group())

見つかりました: 2025年

\dは「数字」、{4}は「4桁」という意味です。rは「生(なま)文字列」といって、特殊な記号を正しく扱うために使います。

4. すべての一致を探す:re.findall

4. すべての一致を探す:re.findall
4. すべての一致を探す:re.findall

re.findall()は、文字列の中からパターンに合ったすべての部分をリストで返してくれます。


import re

text = "電話番号は090-1234-5678と080-9876-5432です。"
numbers = re.findall(r"\d{3}-\d{4}-\d{4}", text)

print(numbers)

['090-1234-5678', '080-9876-5432']

このように、正規表現を使えば文章の中から電話番号を自動で見つけ出すことができます。

5. 特定のパターンで置き換える:re.sub

5. 特定のパターンで置き換える:re.sub
5. 特定のパターンで置き換える:re.sub

re.sub()は、見つけたパターンを別の文字に置き換えるために使います。


import re

text = "ユーザーのパスワードは123456です。"
new_text = re.sub(r"\d{6}", "******", text)

print(new_text)

ユーザーのパスワードは******です。

このように、個人情報などを置き換える処理も簡単にできます。

6. よく使う正規表現の記号まとめ

6. よく使う正規表現の記号まとめ
6. よく使う正規表現の記号まとめ
  • \d:数字(0〜9)
  • \w:英数字とアンダーバー(a〜z, A〜Z, 0〜9, _)
  • \s:空白文字(スペース、タブ、改行など)
  • .:任意の1文字
  • *:直前の文字が0回以上
  • +:直前の文字が1回以上
  • ?:直前の文字が0回または1回
  • []:中のどれか1文字
  • ():グループ化
  • ^:行の先頭
  • $:行の末尾

これらを組み合わせて、自由にパターンを作ることができます。

7. 正規表現はどんなときに使う?

7. 正規表現はどんなときに使う?
7. 正規表現はどんなときに使う?

正規表現は、次のようなときに役立ちます。

  • メールアドレスのチェック
  • 電話番号や郵便番号の抽出
  • 数字だけを取り出す処理
  • 不適切な単語のフィルタリング
  • データから特定の情報を探す自動処理

手作業で探すと大変な作業を、自動で素早くできるのが正規表現の強みです。

まとめ

まとめ
まとめ

Pythonの正規表現とreモジュールの基本を振り返ろう

ここまで、Pythonの正規表現について、初心者の方でも理解しやすいように、 reモジュールの基本的な使い方から、実際によく使われる関数や記号まで順番に学んできました。 正規表現は、単なる文字列検索とは違い、「決まったルールや形を持つ文字列」を柔軟に扱えるのが大きな特徴です。 Pythonで文字列処理を行う場面では、正規表現を使えるかどうかで、 処理の書きやすさや自動化のレベルが大きく変わってきます。

reモジュールを使うことで、文章の中から特定のパターンに一致する文字列を探したり、 複数の一致結果をまとめて取得したり、条件に合う部分だけを別の文字列に置き換えたりできます。 例えば、日付、電話番号、メールアドレス、数字だけのデータなど、 形式が決まっている情報を扱う場合に、正規表現はとても強力な道具になります。 普段は手作業で行っている検索やチェック作業も、Pythonと正規表現を使えば自動化できるようになります。

re.search・re.findall・re.subの使い分けが重要

正規表現を使ううえで特に重要なのが、re.search、re.findall、re.subの役割の違いです。 re.searchは、文章の中から最初に見つかった一致部分を調べたいときに使います。 re.findallは、条件に合うすべての文字列をまとめて取得したいときに便利です。 そしてre.subは、特定のパターンを別の文字列に置き換える処理に使われます。 この三つを使い分けられるようになると、Pythonでの文字列操作の幅が一気に広がります。

また、正規表現のパターンを書くときには、生文字列を表すrを付けることも大切なポイントでした。 バックスラッシュを多用する正規表現では、rを付けることで、 記号の意味が分かりやすくなり、ミスも減らせます。 初心者のうちは、短くて分かりやすいパターンから少しずつ慣れていくのがおすすめです。

正規表現の記号を知ることで表現力が高まる

正規表現では、\dや\w、\sといった記号や、 回数を指定するためのアスタリスクやプラス記号など、 多くの特別なルールが用意されています。 最初は覚えることが多く感じるかもしれませんが、 よく使う記号は限られているため、実際に使いながら覚えていけば問題ありません。 特に、数字を表す\dや、文字の回数を指定する中かっこは、 実務や学習の中で頻繁に登場します。

正規表現を理解すると、単純な文字列処理だけでなく、 入力チェックやデータの整理、ログ解析など、応用できる場面が大きく広がります。 Pythonでデータを扱う力を高めたい人にとって、 正規表現はぜひ身につけておきたい重要なスキルです。

正規表現を使ったサンプルプログラム

ここで、これまで学んだ内容をまとめた簡単なサンプルプログラムを確認してみましょう。 電話番号の抽出と置き換えを行う例です。


import re

text = "連絡先は090-1111-2222です。"
pattern = r"\d{3}-\d{4}-\d{4}"

result = re.search(pattern, text)
if result:
    print("電話番号:", result.group())

masked_text = re.sub(pattern, "非公開", text)
print(masked_text)

このように、正規表現とreモジュールを組み合わせることで、 文字列の検索、抽出、置き換えをシンプルなコードで実現できます。 慣れてくると、複雑な条件でも短いコードで書けるようになります。

先生と生徒の振り返り会話

生徒「正規表現って難しいイメージがありましたけど、使い道がはっきりすると分かりやすいですね。」

先生「そうだね。最初は簡単なパターンから使うのが大切だよ。」

生徒「電話番号や数字を探す処理が、こんなに簡単に書けるのは驚きました。」

先生「reモジュールを使えば、文字列処理がとても効率的になるんだ。」

生徒「searchとfindall、subの違いも少しずつ分かってきました。」

先生「いい調子だね。正規表現を使いこなせるようになると、Pythonでできることがさらに増えるよ。」

カテゴリの一覧へ
新着記事
New1
Python
Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方
New2
Flask
Flaskアプリのセキュリティ対策まとめ!初心者向けに基本をやさしく解説
New3
Flask
FlaskでCookieを安全に使う方法!HttpOnly・Secureフラグの使い方を徹底解説
New4
Flask
Flaskで外部APIと連携する方法!requestsライブラリの使い方を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.2
Java&Spring記事人気No2
Python
Pythonでトランザクション処理を実装する方法を完全解説!commit・rollbackで安全なSQL操作
No.3
Java&Spring記事人気No3
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.4
Java&Spring記事人気No4
Python
Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方
No.5
Java&Spring記事人気No5
Flask
Flask‑RESTfulでREST APIを構築する手順まとめ!初心者向けにやさしく解説
No.6
Java&Spring記事人気No6
Flask
Flaskとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.7
Java&Spring記事人気No7
Flask
Flaskで開発中にデータベースを初期化する方法!初心者でもわかる便利なTips
No.8
Java&Spring記事人気No8
Flask
FlaskのSQLAlchemyでフィルタリング検索!filter, filter_byの使い方完全ガイド