5

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

正则表达式形式

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

该字段应拒绝以下值:

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

2 回答 2

6

从中创建新的 Regex 类。如果它抛出异常,那么它是无效的。

try{
  new Regex(expression)
}
catch(ArgumentException ex)
{
  // invalid regex
}

// valid regex

我知道。对代码逻辑使用异常是错误的。但这似乎是唯一的解决方案。

于 2012-10-26T10:07:32.467 回答
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;
        }
    }
}
于 2012-10-26T10:14:28.443 回答