私はこのような状況に何度か遭遇しました: 一部のテキストが一致する複数のパターンがあり、そのパターンに基づいて何か特定のことをしたいとします。
以前は、常に正規表現のリストを使用して、一致が見つかるまで繰り返していました。
私が疑問に思っているのは、これにより効率的なデータ構造があるかどうかです。たとえば、C# を使用している場合、Regex キーを持つ辞書のようなものです。
パターンがすべて接頭辞または接尾辞である場合、Trie のようなものが理にかなっていることがわかりました。ただし、これが一般的なケースで機能するかどうかはわかりません。
また、キーの衝突に関して、ここでいくつかのあいまいさがあるように思えます。たとえば、一部のテキストが複数のパターンに一致する場合、何を返す必要がありますか? (その場合、おそらく非決定論的な結果でも問題ないと思いますが、動作が文書化されている限り、問題ありません。)
とにかく、そのようなデータ構造は .NET または他の場所に存在しますか?