RegExp NFA エンジンとライブ マッチャー8 最小読み取り更新日
正規表現の習得: JavaScript RegExp エンジンとライブ デバッグ
正規表現をリアルタイムでテストし、キャプチャ グループをデバッグし、文字列置換をシミュレートし、ライブ ハイライト表示で RegExp フラグをマスターします。
W
WEBioDDエンジニアリングチーム•100% ブラウザ内およびゼロトラスト
重要なポイント
- JavaScript RegExp は、バックトラッキングとルックアラウンド アサーションをサポートする非決定性有限オートマトン (NFA) エンジンを使用します。
- キャプチャ グループ ((...)) は一致した部分文字列を抽出しますが、非キャプチャ グループ ((?:...)) はメモリ オーバーヘッドなしでトークンをグループ化します。
- 先読み ((?=...)) と後読み ((?<=...)) は、一致内の文字を消費せずに周囲のコンテキストを検証します。
- 正規表現フラグ (g: グローバル、i: 大文字と小文字を区別しない、m: 複数行、s: dotAll、u: unicode) は、パターン マッチングの動作をグローバルに変更します。
100% ブラウザローカル安全実行
正規表現のテストとデバッグ
リアルタイムの一致インデックス作成、グループ テーブルのキャプチャ、置換シミュレータを使用して正規表現パターンを評価します。
- リアルタイムの試合ハイライト表示
- キャプチャグループインスペクタ
- 選手交代シミュレータ
- RegExp フラグ (g、i、m、s、u)
Finite State Automaton (NFA/DFA) Regex Execution Engine
State Transition Graph⚙️ WEBioDD Technical Architecture EngineVector SVG • 100% Client-Side
01.JavaScript RegExp エンジンの仕組み (NFA とバックトラッキング)
JavaScript RegExp エンジンは、非決定性有限オートマトン (NFA) を利用します。 パターンを文字列と照合する場合、エンジンは候補パスをテストします。 パスに障害が発生すると、以前の決定状態に戻ります。 正規表現サービス拒否 (ReDoS) の致命的なバックトラッキング脆弱性を回避するには、バックトラッキングを理解することが重要です。
02.キャプチャ グループ、名前付きグループ、ルックアラウンドをマスターする
キャプチャ グループを使用すると、サブパターンを分離し、$1、$2 などを介した文字列置換でそれらを参照できます。名前付きキャプチャ グループ (?<name>...) は、一致にセマンティック キーを割り当てます。 先読みアサーションは、パターンを一致に含めることなく、パターンの後に別のパターンが続くかどうかをチェックします。
正規表現をテストおよびデバッグする方法
段階的な正規表現テストのワークフロー。
1
正規表現パターンを入力してください
パターン入力フィールドに正規表現を入力します (例: [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})。
2
正規表現フラグの選択
g (グローバル)、i (大文字と小文字を区別しない)、または m (複数行) などのフラグを切り替えます。
3
テスト文字列の入力
候補テキストを貼り付けると、強調表示された一致がすぐに表示されます。
4
キャプチャグループの検査
キャプチャ グループ テーブルを確認して、インデックス付きおよび名前付きのサブ一致を調べます。
よくある質問
キャプチャ グループ ((...)) は、後で抽出するために一致したテキストを保存しますが、非キャプチャ グループ ((?:...)) はメモリを節約せずに式をグループ化します。