3

私はたくさんの文字列を持っています (多分 50k-1M くらいで、どれも長すぎず、1-20 文字かもしれません)。これで任意の RegExp を取得し、一致するすべての文字列のリスト/イテレータを返す必要があります。これは、できるだけ速くする必要があります。

それを行うのに適したインデックス構造は何ですか?

現在、文字列の文字にツリーを構築しています。そして、RegExp を決定論的オートマトンに変換します。そして、そのオートマトンと木との交点を計算します。それは速いアプローチのように見えますが、他の可能性について疑問に思います。

追加の課題は、Unicode/UTF8 をサポートすることですが、今のところ、この質問をその部分に集中させたくありません。

4

1 に答える 1

0

ちょうどそれを実装しているように見えるcodesearch プロジェクトを見つけました。説明は次のとおりです:トリグラム インデックスを使用した正規表現の一致

別の関連記事は次のとおりです:正規表現マッチングはシンプルで高速

(私はそれ以上調査していません。後でこの回答を拡張します。)

于 2014-05-09T11:47:19.183 に答える