正規表現テスター
すべてブラウザ内で動きます。ファイルやデータが外部に送られることはありません。
| # | マッチ | キャプチャグループ | 名前付きグループ |
|---|---|---|---|
| 1 | hello@example.com | ||
| 2 | support@example.co |
このツールについて
正規表現テスターは、パターンを書いてすぐに実際のテキストと照合できるツールです。パターンを入力し、g・i・mなどのフラグを設定してテスト文字列を貼り付けると、すべてのマッチ箇所がハイライトされ、番号付き・名前付きのキャプチャグループとともに一覧表示されます。コードに組み込む前に、置換文字列も試せます。
マッチングと置換はどういう仕組みで動いている?
マッチングにはJavaScript標準のRegExpエンジンをそのまま使っているので、構文やフラグの挙動はコードに組み込んだときと完全に同じです。gフラグを付けない場合は最初の1件だけが見つかりハイライトされ、これはネイティブのRegExp.execの挙動と一致します。gを付けると最大1万件までマッチを収集します。この上限があるおかげで、巨大な入力のほぼ全文字にマッチするようなパターンを試しても、一覧が扱いきれない長さになることはありません。a*のようなパターンが生む長さゼロのマッチは、毎回1文字分余分に進めることで処理しており、走査が同じ位置で止まってしまうことはありません。特定のマッチに関与しなかった番号付き・名前付きキャプチャグループはundefinedではなく空文字列として表示されるので、グループの一覧は常に読みやすい形を保ちます。置換欄はネイティブのString.prototype.replaceと同じ置換構文を使っているので、$1、$<name>、$&、$$はコード中で使うときとまったく同じ動きをします。
パターンが重かったり無効だったりするとどうなる?
マッチングはメインスレッドではなくWeb Worker内で実行されます。そのため、破滅的バックトラッキングを起こすようなパターンでタブがフリーズすることはありません。マッチに時間がかかりすぎた場合はタイムアウトを知らせるメッセージが表示され、workerは自動的に再起動されるので、ページを再読み込みせずにパターンを直して試し直せます。閉じ括弧の数が合っていない、未知のフラグを指定したといった無効なパターンはエラーとして検出され、入力欄の近くに表示されます。
テスト用のテキストはどこかに送信される?
されません。マッチング、置換、ハイライト表示はすべてブラウザ内で行われます。パターンもテスト文字列も手元のマシンから外に出ないため、顧客のメールアドレスが含まれるログ行や設定ファイルなど、外部サイトに貼り付けたくないデータに対しても安心して正規表現を試せます。
どんな場面で使える?
電話番号や郵便番号のような入力形式の検証、ログ行からの構造化データの抽出、$1や$<name>を使った置換パターンがコードに組み込む前に期待通りの結果を出すかの確認などに使えます。構文の詳細はMDNの正規表現ガイドを、他の言語で書かれたパターンの解説が必要な場合はregex101のコミュニティリファレンスを参照してください。