在我的应用程序中,用户可以手动构建rowfiler。这方面的一个例子是
(Message LIKE '%'[Search]'%') OR (Message LIKE '%'[Search2]'%')
我怎么逃避这个?目前我使用下面的函数来转义括号和任何斜杠,但我需要在整个过滤器字符串中转义单引号。
public static string CheckValue(string value) { StringBuilder sBuilder = new StringBuilder();
string pattern = @"([-\]\[<>\?\*\\\""/\|\~\(\)\#/=><+\%&\^\'])";
Regex expression = new Regex(pattern);
if (expression.IsMatch(value))
{
foreach (char c in value)
{
switch(c){
case '\\':
sBuilder.Append("\\");
break;
case '[':
sBuilder.Append(@"[[]");
break;
case ']':
sBuilder.Append(@"[]]");
break;
default:
sBuilder.Append(c);
break;
}
}
}
return sBuilder.ToString();
}
答案 0 :(得分:0)
逃避单引号
sBuilder.Append(@"\'");