NewIntroducing QODEX QA Services — platform-powered QA for API-driven teams.Learn more →
Python RegEx テスター

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.bacba9b などにマッチしますが、ab にはマッチしません。

  • ^ - 文字列の先頭にマッチします。例: ^Hello は "Hello world" にマッチしますが、"Say Hello" にはマッチしません。

  • $ - 文字列の末尾または末尾の改行直前にマッチします。例: world$ は "Hello world" にマッチしますが、"world peace" にはマッチしません。

  • | - 論理 OR 演算子として機能します。例: cat|dog は "cat" または "dog" にマッチします。


文字クラス

  • [abc] - abc のいずれか 1 文字にマッチします。例: gr[ae]y は "gray" と "grey" の両方にマッチします。

  • [^abc] - abc 以外の文字にマッチします。例: [^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())


使い方

  1. regex パターンとサンプルテスト文字列を入力します。

  2. 下部にマッチとキャプチャグループが即座に表示されます。

  3. パターンが完成するまでコピー・編集・改良を繰り返します。

  4. 他のツールのテストデータを使って実世界のケースをシミュレートします。


効果的な RegEx を書くためのヒント

  • ループ内ではパフォーマンス向上のために re.compile() を使いましょう。

  • 名前付きグループ ((?P<name>...)) で読みやすいコードを書きましょう。

  • 大きな regex には re.VERBOSE でコメントを加えましょう。

  • re.findall() でリストとしてすべてのマッチを取得できます。

  • 深くネストされた構造データには regex の代わりにパーサーを使いましょう。

  • Qodex の Python Regex テスターでエッジケースとライブデータを試しましょう。


関連ツール

他の Regex バリデーター

テスト用ジェネレーター

他の言語の Regex テスター

Frequently Asked Questions

Python で regex を書くにはどうすればよいですか?

re モジュールの re.search()、re.match()、re.findall() などの関数を使います。

Python で regex を大文字小文字区別なしにするには?

re.IGNORECASE フラグまたは re.I を使います。

Python の regex でメールを検証するには?

re.fullmatch() と標準的なメールパターンを使います。メールバリデーターでもお試しいただけます。

match() と search() の違いは何ですか?

match() は文字列の先頭から確認し、search() は文字列全体を検索します。

Python の regex パターンをどこでテストできますか?

Qodex の Python Regex テスターで即座にフィードバックと結果を得られます。

regex パターンで特殊文字をエスケープするには?

バックスラッシュを使います。例えば \\. はリテラルのピリオドにマッチします。

APIをすぐにテストしましょう!

平易な言葉で書くだけで、Qodex がセキュアですぐに実行できるテストに変換します。