我正在构建一个将命名的正则表达式保存到数据库中的应用程序。看起来是这样的:
我正在使用Asp.Net表单。如何验证输入的正则表达式?我希望用户知道输入的正则表达式是否是有效的.Net正则表达式。
该字段应拒绝以下值:
^Wrong(R[g[x)]]$
Invalid\Q&\A
我正在构建一个将命名的正则表达式保存到数据库中的应用程序。看起来是这样的:
我正在使用Asp.Net表单。如何验证输入的正则表达式?我希望用户知道输入的正则表达式是否是有效的.Net正则表达式。
该字段应拒绝以下值:
^Wrong(R[g[x)]]$
Invalid\Q&\A
将其制作为新的Regex类。如果它抛出异常,则表示无效。
try{
new Regex(expression)
}
catch(ArgumentException ex)
{
// invalid regex
}
// valid regex
类似于这样的东西:
public static class RegexUtils
{
public static bool TryParse (string possibleRegex, out Regex regex)
{
regex = null;
try
{
regex = new Regex(possibleRegex);
return true;
}
catch (ArgumentException ae)
{
return false;
}
}
}
(
这样的内容不是有效的正则表达式,因为没有匹配的关闭括号。它需要进行转义才能有效。显然,在正则表达式中还有其他“特殊”的结构会导致其无效。 - Chris