2009-03-19 9 views
1

XMLファイルにワイルドカードベースのパターンのリストがあります。入力文字列がXML文書にあるパターンと一致する場合は、特定のアクションが実行されます。C#でのワイルドカード検索

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

私に教えてください。ネット

+0

例?私はあなたが扱っているワイルドカード/入力のタイプを視覚化するのが難しいと思っています。 – Cerebrus

答えて

1

文書の各パターンを入力文字列と照合するために評価する場合は、言及したように、各パターンのRegExを作成する必要があります。ショートカットはありません。

私はあなたがperfomanceについて心配していると思います。それが問題だと確信していますか?そうであれば、別のアプローチを見つけようとするべきです。

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

そうしないと、提案したアプローチに大きな問題はありません。

1

でワイルドカード検索を行うに任意のより良い方法は、それは私の就寝時の過去の方法ですので、私はこの答えに風変わりに聞こえるかもしれあります。

あなたには間違ったやり方が設定されているように思えます。入力文字列をパターンのリストと照合しています。論理的には、リスト内の各パターンを入力文字列と照合して一致を判定する必要があります。 XMLファイルを解析することによってRegexパターンの配列を構築するのは簡単です。次に、配列を繰り返し処理して、入力文字列に対して各正規表現をマッチさせることができます。

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

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

関連する問題