2011-08-03 69 views
0

我創建從一個給定的字符串搜索集合的搜索應用程序+ *C#:字符串操作通配符搜索

例如,我有這樣的字符串集合:

SMITH

SMATH

BATH

SMAG

X

測試

當用戶輸入* TH輸出應爲SMITH,SMATH和BATH

當用戶進入把SM * TH輸出應該是史密斯和SMATH

當用戶輸入SM *輸出應該是SMITH,SMATH和SMAG

你有關於如何做到這一點的任何建議?

+0

我建議使用正則表達式這個..請參考http://www.dotnetperls.com/正則表達式匹配和http://www.mikesdotnetting.com/Article/46/CSharp-Regular-Expressions-Cheat-Sheet – iamserious

+0

您的規格不完整。你會期望字符串「SMTH」匹配「SM * TH」嗎? IOW,可以*代表一個零長度的字符串? – AnthonyWJones

+0

*表示單個字符 – xscape

回答

1

有在.NET

看看regular expressions如果你只有一個通配符*我大概用替換此。*(0個或多個字符)或+(1個或更多字符)一審

像(未經測試,但應有的一切元素,讓你去)

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 *」。我如何使用正則表達式將其編碼到代碼中?謝謝 – xscape