Python正規表現の使い方完全ガイド|初心者でも理解できる基本から応用まで

Python正規表現の使い方完全ガイド|初心者でも理解できる基本から応用まで python

正規表現は、複雑な文字列検索や置換を効率的に行える強力なツールです。本記事では、Pythonでの正規表現の使い方を初心者にも分かりやすく解説します。まず基本から学び、その後応用テクニックやエラー対策までを段階的に説明します。

Pythonの正規表現とは?基礎知識

正規表現とは、文字列のパターンを記述するための特別な記法です。たとえば「数字だけ」や「特定形式のメールアドレス」を簡潔に表現できます。Pythonでは標準ライブラリのreモジュールを利用します。詳しくはPython公式ドキュメントも参照できます。

正規表現を使うための準備

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

まず、Pythonで正規表現を使うにはimport reが必要です。

import re

文字列パターンの基本構造

次に、パターンの基本を理解しましょう。たとえば\dは数字、\wは英数字とアンダースコアを表します。

pattern = r"\d+"

Python正規表現の基本操作

matchとsearchの違い

まずmatch()は文字列の先頭から一致を探します。一方、search()は文字列全体から最初に一致する部分を探します。

text = "ID12345XYZ"
print(re.match(r"\d+", text))   # None
print(re.search(r"\d+", text))  # <re.Match object>

findallとfinditer

次にfindall()は一致した全ての部分をリストで返し、finditer()はイテレータで返します。

text = "abc123xyz456"
nums = re.findall(r"\d+", text)
print(nums)  # ['123', '456']

置換(sub)

さらに、一致部分を別の文字列に置換できます。

text = "apple 100 yen"
new_text = re.sub(r"\d+", "XXX", text)
print(new_text)  # apple XXX yen

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

最後に、このパターンで文章から全てのメールアドレスを抽出できます。

text = "Contact: user@example.com or admin@test.org"
pattern = r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-z]{2,}"
emails = re.findall(pattern, text)
print(emails)  # ['user@example.com', 'admin@test.org']

さらに理解を深めたい方は、Pythonのlistの使い方を学ぶと、配列処理に役立ちます。またfor文やwhile文の基礎も合わせて読むと理解が一気に広がります。

コメント

タイトルとURLをコピーしました