
Python RegEx テスター
Qodex Python Regex テスターを使って、Python の正規表現をオンラインでテスト・デバッグできます。メール検証、パスワードチェック、電話番号検証などのパターンのマッチを即座にハイライト表示します。Java または JavaScript Regex テスターとの動作比較にもご活用ください。
Python RegEx テスター - ドキュメント
Python Regex とは?
Python は組み込みの re モジュールで正規表現をサポートしています。regex を使うと、パターンを使ってテキストのマッチ、抽出、変換が行えます。主な用途は以下のとおりです。
データ検証(メール、パスワード、電話番号など)
テキスト処理とクリーンアップ
ウェブスクレイピングとログ分析
文字列からのパターン抽出
Python RegEx の主要コンポーネント
リアルタイムマッチング - 入力と同時に即座にパターンマッチングとハイライトを行います。
Python re 構文をサポート - Python の regex エンジンとまったく同じ動作をします。
キャプチャグループの表示 - キャプチャグループとマッチを確認できます。
初心者にやさしい設計 - regex とテスト文字列を貼り付けるだけで、コーディング不要です。
テストツールとの連携 - 住所ジェネレーター、パスワードジェネレーター、MAC アドレスジェネレーターと組み合わせて使えます。
メタキャラクター
.- 改行(\n)以外の任意の文字にマッチします。例:a.bはacb、a9bなどにマッチしますが、abにはマッチしません。^- 文字列の先頭にマッチします。例:^Helloは "Hello world" にマッチしますが、"Say Hello" にはマッチしません。$- 文字列の末尾または末尾の改行直前にマッチします。例:world$は "Hello world" にマッチしますが、"world peace" にはマッチしません。|- 論理 OR 演算子として機能します。例:cat|dogは "cat" または "dog" にマッチします。
文字クラス
[abc]-a、b、cのいずれか 1 文字にマッチします。例:gr[ae]yは "gray" と "grey" の両方にマッチします。[^abc]-a、b、c以外の文字にマッチします。例:[^0-9]は数字以外にマッチします。[a-zA-Z]- 任意のアルファベット文字にマッチします。例:[A-Z]は大文字のみにマッチします。
定義済み文字クラス
\d: 任意の数字。[0-9]と等価です。\D: 数字以外の文字にマッチします。\s: スペース、タブ、改行などの空白文字にマッチします。\S: 空白以外の文字にマッチします。\w: 単語文字 ([a-zA-Z0-9_]) にマッチします。\W: 単語文字以外の文字にマッチします。
量指定子
*- 直前のパターンの 0 回以上の繰り返しにマッチします。例:ab*は "a"、"ab"、"abb"... にマッチします。+- 1 回以上の出現にマッチします。例:ab+は "ab"、"abb"... にマッチしますが、"a" にはマッチしません。?- 0 回または 1 回の出現にマッチします(省略可能)。例:ab?は "a" または "ab" にマッチします。{n}- ちょうどn回の出現。例:a{3}は "aaa" にマッチします。{n,}-n回以上の出現。{n,m}-n回以上m回以下の出現。
グループ
(
abc) : "abc" にマッチしてキャプチャするグループ。例:(ha)+は "ha"、"hahaha" などにマッチします。(
?:abc) : 非キャプチャグループ。保存せずにグループ化します。後方参照が不要な場合に使います。
ルックアヘッドとルックビハインド
ルックアヘッドとルックビハインドは ゼロ幅アサーション と呼ばれます。前後の文字を含まずに、その文脈に基づいてマッチできます。
(
?=abc) : 肯定ルックアヘッド。後ろに abc が続く場合にマッチ。例:\d(?=px)は "px" の前の数字にマッチします。(
?!abc) : 否定ルックアヘッド。後ろに abc が続かない場合にマッチ。(
?<=abc) : 肯定ルックビハインド。abc の後にある場合にマッチ。例:(?<=@)\w+はメールの "@" 後のテキストにマッチします。(
?<!abc) : 否定ルックビハインド。abc の前にない場合にマッチ。
アンカーと境界
\b: 単語境界。例:\bcat\bは "the cat sat" の "cat" にマッチしますが、"catering" にはマッチしません。\B: 非単語境界。\A: 文字列の先頭にマッチします (re.MULTILINEの影響を受けません)。\Z: 文字列の末尾または末尾の改行前にマッチします。
フラグ
re.IGNORECASE / re.I: 大文字小文字を無視したマッチング。re.MULTILINE / re.M:^と$が各行の先頭・末尾にマッチ。re.DOTALL / re.S:.が改行を含む任意の文字にマッチ。re.VERBOSE / re.X: パターンを空白やコメントで分割可能。re.ASCII / re.A:\w、\dなどを ASCII 文字のみに限定。
注意: Python には JavaScript のようなグローバル (g) フラグはありません。re.findall() や re.finditer() がデフォルトですべてのマッチを返します。
Python 正規表現のコード例
例 1: メール検証
import re
email_pattern = re.compile(r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$')
email = "user@example.com"
print("Email Valid:", bool(email_pattern.match(email)))
例 2: パスワード強度チェック
password_pattern = re.compile(r'^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$')
password = "Aa123456!"
print("Password Strong:", bool(password_pattern.match(password)))
例 3: 文字列から単語を抽出
text = "Regex is #1 at pattern matching!"
word_pattern = re.compile(r'\b\w+\b')
for match in word_pattern.finditer(text):
print("Found:", match.group())
使い方
regex パターンとサンプルテスト文字列を入力します。
下部にマッチとキャプチャグループが即座に表示されます。
パターンが完成するまでコピー・編集・改良を繰り返します。
他のツールのテストデータを使って実世界のケースをシミュレートします。
効果的な RegEx を書くためのヒント
ループ内ではパフォーマンス向上のために
re.compile()を使いましょう。名前付きグループ (
(?P<name>...)) で読みやすいコードを書きましょう。大きな regex には
re.VERBOSEでコメントを加えましょう。re.findall()でリストとしてすべてのマッチを取得できます。深くネストされた構造データには regex の代わりにパーサーを使いましょう。
Qodex の Python Regex テスターでエッジケースとライブデータを試しましょう。
関連ツール
他の Regex バリデーター
テスト用ジェネレーター
他の言語の Regex テスター
Frequently Asked Questions
Python で regex を書くにはどうすればよいですか?
Python で regex を大文字小文字区別なしにするには?
Python の regex でメールを検証するには?
match() と search() の違いは何ですか?
Python の regex パターンをどこでテストできますか?
regex パターンで特殊文字をエスケープするには?
Related Articles






