根据"%"搜索字符串
本文关键字:quot 字符串 搜索 根据 | 更新日期: 2023-09-27 18:11:42
我正在尝试编写一个c#搜索函数,该函数支持SQL中的"%",如搜索操作符。例如,
"%m%"将匹配下面的所有字符串。
- 一些我
- 和
- 等。
"%m%e"将匹配类似"some"的字符串。
static bool Like(string expression, string value)
{
return Regex.IsMatch(value, "^" +
Regex.Escape(expression).Replace("%", @"['s'S]*?") + "$",
RegexOptions.IgnoreCase);
}
public bool SqlWildcardMatch(string input, string sqlLikePattern)
{
sqlLikePattern = Regex.Replace(sqlLikePattern, "^([^%])", "^$1");
sqlLikePattern = Regex.Replace(sqlLikePattern, "([^%])$", "$1$$");
return Regex.IsMatch(input, string.Replace(sqlLikePattern, "%", ".*"));
}
这个函数可能需要改进以确保sqlLikePattern
不会产生无效的正则表达式模式,但可以将其视为一个起点。
如果你也想有SQL的LIKE
处理下划线的方式,你可以使用我的答案c#版本的SQL LIKE,如果没有,你可以删除位Replace('_', '.')
。
您可以使用正则表达式实现这一点。
请看:
http://www.codeproject.com/KB/recipes/wildcardtoregex.aspx使用regex .*m.*