3

私は一般的に、制御されていないバックトラックを引き起こす正規表現の「ホットスポット」を見つけるためのツールまたは方法を求めています。私は所有格の一致、否定的な先読みアサーション、アトミックグループなどをかなりよく理解していますが、私の正規表現がどこで間違っているのかが明確でない状況に直面しています。

問題のある正規表現はPCRE正規表現です。しかし、私はどんな言語のどんなポインタにも満足します。

理想的には、正規表現の「ホットスポット」を強調表示するツールが必要です。私は過去にラッパーを作成しようとしましたperl -Mre=debugが、その出力をどのように有効に処理する必要があるかを実際に理解できませんでした。漠然と、1つまたは複数の入力文字列を正規表現に対して実行し、マッチャーが戻り続ける正規表現のオフセット(およびおそらく文字列のオフセット)を収集するというアイデアがあります。

4

2 に答える 2

6

DamianConwayのPerl用の新しいRegexp::Debuggerモジュールを使用すると、文字列と照合される正規表現のアニメーションを見ることができます。過度のバックトラックを見つけるのはかなり簡単になるはずです。それをインストールして、rxrxそれに一致する正規表現と文字列を入力できる付属のスクリプトを使用するだけです。

于 2012-08-03T05:32:35.830 に答える