正規表現パターンをリアルタイムでテストし、マッチ結果をハイライト表示します。
//g
g=グローバル, i=大文字小文字無視, m=複数行, s=.が改行にもマッチ
テンプレート:
正規表現テスターでできること
正規表現パターンのマッチをリアルタイムでテストできるブラウザツールです。パターンを入力するたびに即座にマッチ結果が更新されるため、試行錯誤のサイクルをすばやく回せます。
主な機能は次のとおりです。マッチ箇所の黄色ハイライト表示により、テキスト内のどの部分に一致しているかを視覚的に確認できます。マッチ統計(マッチ数・平均長・カバー率)では、パターンがどの程度テキストをカバーしているかを数値で把握できます。キャプチャグループ機能では、括弧で囲んだ部分式にマッチした文字列を個別に確認できます。置換モードでは、$1・$2を使ったグループ参照を含む置換後テキストを確認できます。コード生成機能では、作成したパターンをJavaScript・Python・Go・PHPの4言語のコードとして出力できます。また、Web Workerを使った非同期処理で大きなテキスト(最大1MB)に対する検索も3秒のタイムアウト保護付きで実行できます。JavaScriptの正規表現エンジンを使用しています。
使い方
- パターン入力欄
- 正規表現パターンを入力します。
/で囲まれた表示になり、右側に現在有効なフラグが表示されます。無効なパターンを入力するとエラーメッセージが表示されます。 - フラグボタン(g / i / m / s)
- クリックでON/OFFを切り替えます。g=グローバル検索(全マッチを返す)、i=大文字小文字無視、m=複数行モード(^/$が各行の先頭・末尾にマッチ)、s=dotAll(
.が改行にもマッチ)。初期値はgのみONです。 - テンプレートボタン(9種)
- よく使うパターンをワンクリックで入力できます。メールアドレス、URL、郵便番号(3桁-4桁形式)、電話番号、IPアドレス、日付(YYYY-MM-DD)、時刻(HH:MM:SS)、HTMLタグ、カラーコードの9種類に対応しています。
- テスト文字列入力欄
- マッチを確認したいテキストを貼り付けるか入力します。マッチ箇所がリアルタイムで黄色くハイライトされます。入力サイズは1MBまで対応しています。
- 「置換モード」チェックボックス
- ONにすると置換文字列の入力欄が表示されます。
$1、$2でキャプチャグループを参照できます。置換結果は緑色の背景で表示されます。 - マッチ統計・個別マッチ詳細
- マッチ数・平均長・カバー率の3指標が表示されます。また、各マッチの文字列・テキスト中の位置(インデックス)・キャプチャグループの値を一覧で確認できます。
- コード生成
- 現在のパターンとフラグを使った実行コードがJavaScript・Python・Go・PHPの4言語で自動生成されます。各言語の「コピー」ボタンでクリップボードにコピーできます。
- 「リセット」ボタン
- パターンとテスト文字列をクリアして初期状態に戻します。フラグもgのみONの初期値に戻ります。
活用シーン
- ログファイルから特定パターンの行を抽出する — アプリケーションのエラーログやアクセスログには、特定のIPアドレス・ステータスコード・タイムスタンプが含まれます。正規表現で抽出パターンを組み立てながら、テストデータで動作確認してから本番のgrepやawkコマンドに転用できます。
- フォームバリデーションのパターンを検証する — メールアドレス・電話番号・郵便番号のバリデーション正規表現は、エッジケースで意図しない挙動を起こしやすいです。テンプレートを起点にして自分の要件に合わせて調整しながら、複数のテストケースで一括確認できます。
- テキストの一括置換パターンを事前確認する
— コードリファクタリングやドキュメント整形で、エディタの正規表現置換を使う前にパターンと置換文字列を安全に検証できます。置換モードと
$1参照を使えば、キャプチャグループを活用した複雑な置換の結果を事前に確認できます。 - 複数言語への移植前に動作確認する
— JavaScriptで動作確認したパターンをPython・Go・PHPに移植する際、コード生成機能でそれぞれの言語の構文に変換されたコードを即座に確認できます。フラグの対応関係(JavaScriptの
gフラグがPythonではre.findallに対応する等)を意識せずにコードを得られます。 - 正規表現の学習・デバッグ — パターンを少しずつ変えながらマッチ結果を確認することで、各メタ文字・量指定子の挙動を体感的に理解できます。カバー率の指標は「パターンがテキスト全体をどれだけカバーしているか」を示すため、過剰マッチや未マッチの検出にも役立ちます。
正規表現の主なメタ文字
正規表現では特別な意味を持つ文字(メタ文字)を組み合わせてパターンを記述します。代表的なものを整理しておくと、パターンを読み書きする際の参考になります。
.- 改行以外の任意の1文字にマッチします。sフラグをONにすると改行にもマッチします。
*+?- 量指定子です。
*=0回以上、+=1回以上、?=0または1回の繰り返しにマッチします。末尾に?を付けると最短マッチ(非貪欲)になります。 {n,m}- n回以上m回以下の繰り返しにマッチします。
{3}は厳密に3回、{2,}は2回以上を意味します。 ^$- アンカーです。
^=文字列(または行)の先頭、$=末尾にマッチします。mフラグと組み合わせると各行の先頭・末尾に対応します。 [abc]- 文字クラスです。括弧内のいずれか1文字にマッチします。
[a-z]は範囲指定、[^abc]は否定(abc以外)を表します。 (abc)- キャプチャグループです。括弧内のパターンにマッチした文字列を
$1として参照できます。(?:abc)は非キャプチャグループで、参照不要な場合に使います。 \d\w\s- 短縮文字クラスです。
\d=数字([0-9]相当)、\w=単語構成文字([a-zA-Z0-9_]相当)、\s=空白文字。大文字(\D等)は否定になります。 \b- 単語境界にマッチします。
\bword\bは「word」という単語全体にのみマッチし、「password」内の「word」にはマッチしません。
フラグの意味と使い分け
正規表現のフラグは、パターンのマッチ動作を制御するオプションです。このツールでは4つのフラグに対応しています。
- g(グローバル)
- テキスト内の全マッチを返します。このフラグをOFFにすると最初の1件のみ返します。全件置換を行う場合はgフラグが必要です。
- i(大文字小文字無視)
Helloとhello、HELLOを同一視してマッチします。HTML属性名やURLなど、大文字小文字が混在するデータを扱う際に使います。- m(複数行)
^と$が文字列全体の先頭・末尾だけでなく、各行の先頭・末尾にもマッチするようになります。複数行のログから各行を対象に先頭・末尾パターンを検索する際に役立ちます。- s(dotAll)
.が改行文字(\n)にもマッチするようになります。複数行にわたるHTMLブロックやログエントリを.*で一括マッチする場合に使います。
関連ツール
プライバシーについて
入力した正規表現パターンおよびテスト文字列はすべてブラウザ内で処理されます。サーバーへのデータ送信は行いません。アカウント登録も不要です。