Javascriptを使用して中程度に複雑な文法を解析しています。正規表現を使用して数字などのトークンを一致させたいと考えています。Javascript RegExpは、検索せずに正確な文字列オフセットで一致することはできますか?
文法を含む文字列、文字列内の数字とオフセットを表す正規表現を指定すると、正規表現がそのオフセットの文字列と正確に一致するかどうかを調べたいと思います。
lastIndexを設定し、RegExp.execを呼び出して、結果の一致のインデックスプロパティを調べて、期待されるオフセットで一致が発生したかどうかを調べることができますが、これは非常に効率的ではありません開始オフセットで一致を見つける。
Javascript仕様では、「Patternは内部プロシージャ値を評価(コンパイル)します。RegExp.prototype.execはこのプロシージャをStringおよびString内のオフセットに適用して、パターンが開始と一致するかどうかを判断しますストリング内の正確にそのオフセットで。
これは私が欲しいものですが、この内部機能にアクセスする方法はないようです。誰か知っていますか?
P.S.私は現在、入力文字列をトークンの配列に分割することによってこの問題を回避していますが、そうしたくないです。
私はあなたを正しく理解しているかわかりませんが、代わりに 'str.substring(index)'を使って正規表現とマッチしてインデックス '0'でマッチするかどうか確認できませんか? – pimvdb
@pimvdb - Robへの私の答えを参照してください – arx