1

XML ファイルにワイルド カード ベースのパターンのリストがあります。入力文字列が XML ドキュメントに存在するパターンと一致する場合、特定のアクションが実行されます。

ここで言及されているアプローチを見つけましたhttp://www.codeproject.com/KB/recipes/wildcardtoregex.aspxしかし、その場合、避けようとしているXMLのすべてのエントリに対してRegExオブジェクトを作成する必要があります。

.net でワイルドカード検索を行うより良い方法があることを教えてください

4

2 に答える 2

1

それは私の就寝時刻をはるかに過ぎているので、私はこの答えに奇妙に聞こえるかもしれません。

間違った方法で設定されているように思われます。入力文字列をパターンのリストと照合しています。論理的には、リスト内の各パターンを入力文字列と照合し、一致を判断する必要があります。XMLファイルを解析して正規表現パターンの配列を作成するのは非常に簡単です。次に、配列を反復処理して、各正規表現を入力文字列と照合できます。

さらに、なぜワイルドカードが必要なのですか?ワイルドカードはRegexのサブセットと見なすことができるため、ワイルドカードマッチングのすべての機能がRegexオブジェクト内にカプセル化されています。

そうは言っても、入力/ワイルドカードのタイプに関するより多くのデータがあなたの質問を理解するのに役立つかもしれません。

于 2009-03-19T21:04:54.313 に答える
1

ドキュメント内の各パターンを評価して入力文字列と照合する場合は、言及したように、パターンごとに正規表現を作成する必要があります。近道はありません。

パフォーマンスを気にしていると思います。本当に問題ですか?もしそうなら、まったく別のアプローチを見つけようとする必要があります。

多くの入力文字列を照合しますか? その場合、毎回作成するのではなく、RegEx を (たとえばリストに) 保持する必要があります。RegEx は再利用できます。

そうでなければ、提案されたアプローチに大きな問題はないと思います。

于 2009-03-19T21:22:38.560 に答える