我们在nvarchar列的数据库表中有正则表达式值@"^[a-zA-Z0-9_]*$
。当我们从数据库表中检索表达式时,我们使用特殊字符@"^[a-zA-Z0-9_]*$"
不评估此值。我如何确保
正则表达式是有效表达式
如何从数据库表中获取表达式值时删除特殊字符。
这是代码:
public static bool IsMatch(string target, string pattern, RegexOptions options) {
if (String.IsNullOrEmpty(target)) {
throw new ArgumentNullException("target");
} if (String.IsNullOrEmpty(pattern)) {
throw new ArgumentNullException("pattern");
}
return Regex.IsMatch(target, pattern, options);
}
答案 0 :(得分:1)
要检查正则表达式是否是有效的正则表达式,请使用ArgumentException
try
{
var rxnew = new Regex(@"[z-a]");
}
catch (ArgumentException ae)
{
MessageBox.Show(ae.Message);
// Shows "parsing "[z-a]" - [x-y] range in reverse order."
}
您可以通过运行此S& R:
来取消"
符号
var str = "@\\\"^[a-zA-Z0-9_]$"; // Input: @\"^[a-zA-Z0-9_]$
var fixed_str = Regex.Replace(str, "(?<!\\\\)\\\\\"","\""); // Output: @"^[a-zA-Z0-9_]$