Categories: 雑記

Pythonで正規表現を使う方法まとめ:文字列操作を効率化する基本から実践まで

Pythonで文字列を扱う際、特定のパターンに合致する文字列を検索・抽出・置換したい場面が多くあります。そんな時に便利なのが「正規表現(Regular Expression)」です。本記事では、Pythonで正規表現を使うための基本から実践的な使い方まで、初心者にもわかりやすくまとめます。


正規表現とは?

正規表現とは、文字列のパターンを記述するための記法です。例えば、「メールアドレスや郵便番号のような特定の形式の文字列を抽出したい」「住所の特定部分だけを抜き出したい」といった場合に活用できます128

Pythonで正規表現を使うための基本

reモジュールのインポート

Pythonで正規表現を使うには、標準ライブラリのreモジュールをインポートします。

import re

代表的な正規表現関数

関数名説明
re.match()文字列の先頭がパターンに一致するか判定
re.search()文字列のどこかにパターンが一致するか判定
re.findall()パターンに一致する全ての部分をリストで返す
re.sub()パターンに一致する部分を別の文字列に置換
re.split()パターンに一致する部分で文字列を分割

正規表現の基本的な記法

正規表現にはさまざまな記号(メタキャラクター)があります。

記号意味・例
\d数字(例: 0-9)
\w英数字またはアンダースコア
\s空白文字(スペース、タブ、改行など)
.任意の一文字(改行を除く)
^行頭に一致
$行末に一致
*0回以上の繰り返し
+1回以上の繰り返し
?0回または1回の繰り返し
{n}n回の繰り返し
[]文字の集合(例: [abc] は a, b, c のいずれか)

実践例:正規表現を使った文字列処理

例1:メールアドレスの抽出

import re

text = "連絡先は、example@email.com と another.example@email.co.jp です。"
pattern = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'
emails = re.findall(pattern, text)
print(emails)

出力例:

['example@email.com', 'another.example@email.co.jp']

例2:郵便番号の抽出

import re

with open("address.txt", "r", encoding="utf-8") as file:
    for line in file:
        match = re.search(r"\d{3}-\d{4}", line)
        if match:
            print(match.group())

例3:文字列の置換

import re

text = "2025年05月30日"
new_text = re.sub(r"\d{4}年(\d{2})月(\d{2})日", r"/\2/2025", text)
print(new_text)

出力例:

05/30/2025

まとめ

Pythonの正規表現は、文字列処理を効率化する強力なツールです。reモジュールを使い、基本的な記法と関数を覚えることで、メールアドレスや郵便番号の抽出、文字列の置換などさまざまな場面で活用できます。まずは簡単な例から始めて、徐々に応用力を高めていきましょう

にいやん

出身 : 関西 居住区 : 関西 職業 : 組み込み機器エンジニア (エンジニア歴13年) 年齢 : 38歳(2022年11月現在) 最近 業務の効率化で噂もありPython言語に興味を持ち勉強しています。 そこで学んだことを記事にして皆さんとシェアさせていただければと思いブログをはじめました!! 興味ある記事があれば皆さん見ていってください!! にほんブログ村