如何验证输入是否包含有效的.Net正则表达式?

时间:2012-10-26 10:03:26

标签: c# asp.net regex validation

我正在构建一个将命名正则表达式保存到数据库中的应用程序。看起来像这样:

Regex form

我正在使用Asp.Net表单。如何验证输入的正则表达式?它希望用户知道输入的正则表达式是否不是有效的.Net正则表达式。

该字段应拒绝以下值:

^Wrong(R[g[x)]]$
Invalid\Q&\A

2 个答案:

答案 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;
        }
    }
}