正規表現デバッガー
正規表現のマッチ過程をビジュアルにステップ実行。エンジンがパターンを1文字ずつどのように処理するか確認できます。
このツールについて
正規表現デバッガーは、単純なマッチハイライトにとどまらないツールです。 標準的な正規表現テスターでは何がマッチしたかを表示しますが、 このツールではマッチエンジンが各結果にどのように到達するかを 示します。パターンを個別のトークン(文字クラス、量指定子、グループ、 アンカー、エスケープシーケンスなど)に分解し、マッチング過程を1トークン ずつステップ実行できます。
正規表現の内部動作を理解することは、予期しないマッチを生成するパターン、 エッジケースを見逃すパターン、壊滅的なバックトラッキングに悩まされる パターンをデバッグする際に不可欠です。テスト文字列の各位置に対する 各トークンの試行過程を観察することで、パターンが成功または失敗する 正確な箇所とその理由を特定できます。
パターン内の各トークンはタイプ別に色分けされます:リテラル、
文字クラス([a-z])、量指定子(*、+、{{n,m}})、
グループとルックアラウンド、アンカー(^、$、\b)、
選択(|)、エスケープシーケンス(\d、\w、\s)。
ステップ実行デバッガーは現在のトークンとテスト文字列内の現在の位置を
ハイライトし、各ステップでステータスメッセージを表示するため、
エンジンのロジックを追跡できます。
さらに、番号付きマッチとキャプチャグループの詳細を含む完全な
マッチ可視化、パターン内のすべてのトークンの人間が読める説明、
すべてのマッチデータをJSONとしてコピーする機能も提供します。
すべての処理はJavaScriptのネイティブRegExpエンジンを使用して
ブラウザ内で完結し、データがサーバーに送信されることはありません。
使い方
- パターン入力フィールドに正規表現パターンを入力するか、サンプルパターンボタン(Email、URL、Date)をクリックして例を読み込みます。
- フラグバッジ(
g、i、m、s、u)をクリックしてフラグを切り替えます。グローバルフラグ(g)はデフォルトで有効です。 - テスト文字列を入力または貼り付けます。ツールが即座にパターンをトークン化し、ハイライト付きですべてのマッチを表示します。
- パターントークンセクションで、正規表現の各部分がタイプ別に解析・色分けされているのを確認します。
- ステップ実行デバッガーのコントロールを使ってマッチング過程を順に追跡します。Stepで1トークンずつ進めるか、Playで速度調整可能な自動ステップを使います。
- テスト文字列内のステータスメッセージとハイライトされたカーソル位置を見て、各ステップでエンジンが何をしているか理解します。
- マッチ詳細パネルで各マッチの全テキスト、インデックス、キャプチャグループを確認します。Copy MatchesをクリックしてすべてのマッチデータをJSONとしてエクスポートできます。
よくある質問
正規表現テスターとの違いは何ですか?
正規表現テスターはマッチ結果(ハイライトされたマッチ、キャプチャグループ、置換プレビュー)を表示します。正規表現デバッガーはマッチング過程に焦点を当て、パターンをトークンに分解し、1トークンずつステップ実行でき、テスト文字列のどの位置をエンジンが各ステップで見ているかを表示します。クイックなマッチ/置換タスクにはテスター、パターンの動作理由を理解する必要がある場合にはデバッガーを使用してください。
どの正規表現エンジンを使用していますか?
このツールはブラウザに組み込まれたJavaScriptのRegExpエンジンを使用しています。マッチング結果はNode.jsや最新のブラウザで得られるものと同一です。ただし、他のエンジン(PCRE、Python re、.NET)では高度な機能で動作が若干異なる場合があります。
トークンの色は何を意味しますか?
各トークンタイプには固有の色が割り当てられています。リテラルはグレー、文字クラス([...])は紫、量指定子(*、+、?、{n,m})はアンバー、グループは青、アンカーは赤、選択(|)はオレンジ、エスケープシーケンスは緑、ルックアラウンドはピンクです。トークンバッジにマウスを合わせると説明が表示されます。
ステップ実行は実際のバックトラッキングを表示しますか?
デバッガーはマッチング過程の簡略化されたシミュレーションを提供します。パターン内の各トークンをステップ実行し、テスト文字列で検査されているおおよその位置を表示します。エンジンの内部的なバックトラッキング判断をすべて再現するわけではありませんが、パターンが入力をどのように進行するかの明確なメンタルモデルを提供し、マッチ失敗時のバックトラッキング発生を示します。
複雑なパターンを処理できますか?
はい。トークナイザーは文字クラス、ネストされたグループ、名前付きキャプチャグループ、先読み、後読み、非キャプチャグループ、後方参照、すべての標準量指定子を処理します。有効なJavaScript正規表現であれば、正しくトークン化してデバッグできます。
データは安全ですか?
もちろんです。すべての正規表現の解析、トークン化、マッチングはクライアントサイドのJavaScriptを使用してブラウザ内で完全に実行されます。パターンやテスト文字列がサーバーに送信されることは一切ありません。データはお使いの端末に留まります。
利用可能なキーボードショートカットは?
デバッガーエリアにフォーカスがある状態でSpaceキーを押すと1ステップ進みます。Ctrl+Enterでどこからでも全マッチを実行して最終結果にジャンプできます。速度調整スライダー付きの再生/一時停止ボタンで自動ステップ実行も可能です。