使用一個正則表達式的簡單的解決方案是:
string[] values = new string[] { "Test123Test",
"TestTTTTest",
"Test153jhdsTest",
"123Test",
"TEST123" };
string searchQuery = "Test%Test";
string regex = Regex.Escape(searchQuery).Replace("%", ".*?");
string[] filteredValues = values.Where(str => Regex.IsMatch(str, regex)).ToArray();
或單個匹配:
string value = "Test123Test";
string searchQuery = "Test%Test";
string regex = Regex.Escape(searchQuery).Replace("%", ".*?");
if (Regex.IsMatch(value, regex))
{
// do something with the match...
}
我們使用正則表達式替換%(=任何字符,* =零個或多個次,?=懶惰量詞)。您可以瞭解更多有關正則表達式的信息here
http://stackoverflow.com/questions/5417070/c-sharp-version-of-sql-like鏈接可以幫助您。 – mfatih
它可能是一個很好的正則表達式。但我絕不是正則表達式專家。所以我會用String.StartsWith和String.EndsWith解決它。因此,將'seo'這個術語放在'%'上並且使用兩個值 – ErazerBrecht
這裏'%'字符的作用是什麼?它是某種通配符嗎?分隔符?或者它是一個字面的「%」? – heltonbiker