需要像#39;喜欢'对照

时间:2014-07-25 20:22:08

标签: c# regex

需要帮助才能找到C#代码来执行类似搜索的SQL类型(不区分大小写) 你能帮我解决这个问题的正则表达式吗?模式和测试候选者都是用户输入

*可以在任何地方。所以模式可能是.T * S.com

e.g。

Pattern = *.test.com
Test Candidate1 = abc.test.com                   Result = Pass
Test Candidate2 = abc.tESt.com                   Result = Pass
Test Candidate3 = abc.itest.com                  Result = FAIL

3 个答案:

答案 0 :(得分:2)

如果*位于前面,您可以使用String.EndsWith()

喜欢

"abc.test.com"
    .EndsWidth(".test.com", StringComparison.InvariantCultureIgnoreCase);

返回true

答案 1 :(得分:1)

如果您不想使用正则表达式路线且候选人总是以.test.com结尾,您可以摆脱模式中的*,然后查看EndsWith

if (candidate.EndsWith(pattern, StringComparison.InvariantCultureIgnoreCase))
    // you have a match

答案 2 :(得分:0)

如果你想要正则表达式,那么模式必须是:

public bool IsMatch(string s,string pattern)
{
     return System.Text.RegularExpressions.Regex.IsMatch(s, pattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
}
string pattern = ".*\.test\.com"
Console.WriteLine(IsMatch("abc.test.com",pattern).ToString()); //PASS
Console.WriteLine(IsMatch("abc.tESt.com",pattern).ToString()); //PASS
Console.WriteLine(IsMatch("abc.itest.com",pattern).ToString()); //FAIL