Python Regex: re モジュールを使用したパターン マッチング
Python の正規表現 (Regex) をマスターします。組み込みの re ライブラリを使用して、文字列データを検索、一致、分割、置換する方法を学びます。
概要
正規表現 (正規表現と短縮されることがよくあります) は、高度なテキスト検索、文字列の一致、および操作に使用されるミニ言語です。単純な文字列値をチェックする代わりに、正規表現を使用すると、大量のテキスト本文内を検索するための複雑なパターンを定義できます。たとえば、ドキュメント内のすべての電子メール アドレス、電話番号、または URL を検索することは、正規表現で表現するのは簡単ですが、通常の文字列メソッドを使用して記述すると非常に複雑になります。
Python は、「re」モジュールを通じて正規表現の組み込みサポートを提供します。このモジュールには、最初の一致を検索する「re.search()」、一致するすべての部分文字列をリストとして取得する「re.findall()」、一致オブジェクトを反復する「re.finditer()」などの重要な関数が含まれています。各一致オブジェクトは、一致する部分文字列の正確な開始位置と終了位置のインデックス、一致するテキスト自体などのメタデータを提供します。
正規表現パターンは特殊なメタ文字を利用します。「\d」は任意の数字に一致し、「\w」は英数字に一致し、「+」は 1 つ以上の繰り返しに一致し、括弧「[...]」は文字セットを定義します。括弧 `(...)` でグループ化すると、パターンの特定の部分を抽出できます。さらに、「re.sub()」を使用すると、パターンを検索して新しい文字列に置き換えることができます。正規表現は学習に時間がかかりますが、正規表現をマスターすると、テキスト処理のための信じられないほど高速で多用途なツールが得られます。
コードと実行の出力
re モジュールを使用して電子メール アドレスのコンポーネントを検証し、抽出します。
import re
text = "Contact support at info@pyrun.xyz or developer@pyrun.xyz today."
# Pattern to match email addresses
email_pattern = r"([a-zA-Z0-9._%+-]+)@([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})"
# Find all matches
emails = re.findall(email_pattern, text)
print("Emails found:")
for user, domain in emails:
print(f"User: {user} | Domain: {domain}")
# Redacting emails using re.sub
redacted_text = re.sub(email_pattern, "[REDACTED]", text)
print(f"\nRedacted Text:\n{redacted_text}")Emails found:
User: info | Domain: pyrun.xyz
User: developer | Domain: pyrun.xyz
Redacted Text:
Contact support at [REDACTED] or [REDACTED] today.段階的な実装
- 入力形式の検証 (電子メール、電話、パスワード)
- サーバーアクセスログのステータスコードの解析
- 生の HTML およびマークダウン レポートからの情報のスクレイピング
よくある質問
正規表現パターンにおける「r」接頭辞の意味は何ですか?
これは「生の文字列」を表します。生の文字列では、バックスラッシュ (\) がエスケープ文字ではなくリテラル文字として扱われ、正規表現ワイルドカードとの構文の競合が回避されます。
re.match と re.search の違いは何ですか?
re.match は文字列の先頭から一致するかどうかのみをチェックしますが、 re.search は一致する文字列全体をスキャンします。
関連トピック
推奨される Python リソース
関連するインタラクティブなチュートリアル、チートシート、コード比較で知識を深めてください。
Python でリストを並べ替える方法
sort() メソッドとsorted() 関数を使用して、Python でリストを並べ替える方法を学びます。カスタムキーの並べ替えと逆順の例をご覧ください。
Python 正規表現パターン (モジュールに関する) チートシート
Python 正規表現のリファレンス ガイド。 match、search、findall、sub、および必須の正規表現パターンを学習します。
Python と JavaScript: どちらのプログラミング言語が最適ですか?
Python と JavaScript の包括的な比較。構文の違い、パフォーマンス、使用例 (バックエンドとフロントエンド)、およびコーディング例を調べます。