正規表現テストツール

サンプルテキストに対して正規表現をテストし、入力するとリアルタイムに一致箇所がハイライトされます。すべての一致とキャプチャグループを確認できます。

フラグ一覧

g グローバル(すべての一致を検索、ここでは常に内部的に適用)、i 大文字小文字を区別しない、m 複数行(^と$が行境界に一致)、s dotAll(.が改行にも一致)、u Unicode、y sticky。

仕組み

あなたのパターンはブラウザネイティブのRegExpエンジンでコンパイルされます。これはあなたのJavaScriptコードが本番環境で使用するのとまったく同じエンジンです。これが、PCREベースのツールではなくここでテストする意味です。方言間で異なる構文(後読みのサポート、uフラグ下での\dの意味論、名前付きグループ)は、ここではNodeやブラウザとまったく同じように動作します。フラグフィールドは有効なセット(d g i m s u y)にサニタイズされ、テストツールはすべての一致を巡回できるよう内部的に静かにgを追加しますが、あなたが入力した内容自体は変更されません。

マッチングはキー入力のたびに実行されます。テストツールはループ内でexec()を呼び出し、一致テキスト、位置、キャプチャグループを収集します。2つの保護機構が正確性を保ちます。ゼロ長の一致(a*のようなパターンから)は手動でインデックスを進めることでループが無限に回らないようにし、繰り返しは最大5,000件の一致に制限されます。ハイライトはテスト文字列を一度走査し、一致した各範囲を囲むことで構築されます。すべてのテキストは先にHTMLエスケープされるため、<script>を含む一致もマークアップとしてではなくテキストとして表示されます。

すべてはあなたのタブ内にとどまります。入力中、DevToolsのNetworkパネルにはリクエストが一切表示されないため、実データを含むテスト文字列があなたのマシンから外に出ることはありません。

知っておく価値のある落とし穴が一つあります。(a+)+$のようなネストした量指定子は、破滅的バックトラッキングを引き起こす可能性があり、長いほぼ一致する入力に対してマッチ時間が指数関数的に爆発します。このようなパターンでページがフリーズした場合、それはツールの問題ではなく正規表現自体の問題であり、本番コードでも同じようにハングします。量指定されたグループが同じ文字を複数の方法で一致させられないよう、パターンを書き直してください。