我正在构建一个将命名正则表达式保存到数据库中的应用程序。看起来像这样:
我正在使用Asp.Net表单。如何验证输入的正则表达式?它希望用户知道输入的正则表达式是否不是有效的.Net正则表达式。
该字段应拒绝以下值:
^Wrong(R[g[x)]]$
Invalid\Q&\A
答案 0 :(得分:6)
制作新的Regex类。如果它抛出异常,则它无效。
try{
new Regex(expression)
}
catch(ArgumentException ex)
{
// invalid regex
}
// valid regex
我知道。使用代码逻辑的异常是错误的。但这似乎只是解决方案。
答案 1 :(得分:2)
或许这样的事情:
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;
}
}
}