2011-08-03 12 views
0

私は与えられた文字列からコレクションを検索する検索アプリケーションを作成しています+ *C#:文字列操作のワイルドカード検索

私は、この文字列のコレクションを持っ例えば

SMITH

SMATH

バス

SMAG

X

テスト

ユーザ入力* THが出力SMITH、SMATH浴

場合でなければならない場合ユーザーはユーザー入力SM *出力はSMITH、SMATHとSMAG

あるべきときに出力がSMITHとSMATH

する必要があります* THSMを入れて、あなたがこれを行う方法上の任意の提案を持っていますか?あなただけ*私はおそらく*(0文字以上)。でこれを置き換えるかと思います。+(1文字以上)のワイルドカードをお持ちの場合は

+0

.. http://www.dotnetperls.com/を参照してください。正規表現と一致し、http://www.mikesdotnetting.com/Article/46/CSharp-Regular-Expressions-Cheat-Sheet – iamserious

+0

あなたの仕様は不完全です。文字列 "SMTH"が "SM * TH"と一致すると思いますか? IOW、長さ0の文字列を表すことはできますか? – AnthonyWJones

+0

*は一文字を表します – xscape

答えて

1

はで.NET

regular expressionsを見てください最初のインスタンス

私はこのために正規表現を使用してお勧めするような何か(テストしたが、あなたが軌道に乗るためにすべての要素を持つべきではない)

var pattern = "SM*TH"; 
var newpattern = pattern.Replace("*",".+"); 
var rex = new RegEx(newpattern); 
var match = rex.Match("SMITH") 
+0

私は一定のパターンを持っていないので、それを行う方法の例を教えてください。ありがとう – xscape

+0

var pattern = "SM * TH"; var newpattern = pattern.Replace( "*"、 "。+"); var rex = new RegEx(newpattern); var match = rex.Match( "SMITH"); –

+0

あなたはそれを解説してもらえますか?たとえば、私はstr1 = "SMITH"を持ち、検索入力はstr2 = "SM *"です。 Regexを使ってコードにどうやって入れますか?ありがとう – xscape