0

2つ以上の正規表現ルールを比較し、それに応じて厳密さを見つける方法はありますか?理想的にはphpですが、これが異なるプラットフォーム/言語に存在する場合、これを実装する方法の概念を知り、それに応じてphpでコーディングします

ありがとう

4

1 に答える 1

0

これは重要な問題です。正規表現を解析し、各トークンが持つ代替一致の数を決定する必要があります。ネストされた量指定子が複雑さにどのように影響するかを正しく判断するには、おそらくこれを再帰的に行う必要があります。

量指定子を見ることで非常に大雑把な見積もりを得ることができますが、これも自明ではありません。

  • ???+?{0,1}?{0,1}+および{0,1}それぞれに 1 つの選択肢が許可されます
  • |、ネストの同じレベルでカウントされ、それぞれ n+1 個の代替が許可されます
  • {n,m}?{n,m}+およびそれぞれが代替を{n,m}許可しますm-n
  • *+*?*+++?+、およびそれぞれ無限の選択肢を許可{n,}?します{n,}+{n,}

そして、複雑さ/「厳密さ」を決定する他の多くの要因があるため、この方法で得られるのは多かれ少なかれ「ゼロ次近似」です...

于 2011-07-15T07:12:04.470 に答える