2009-09-03 41 views
19

我正在开发一个.NET应用程序,用户可以提供之后用于验证输入数据的正则表达式。如何验证正则表达式?

我需要一种方法来知道正则表达式是否对.net正则表达式引擎确实有效。

感谢您的任何帮助

回答

30

只是尝试编译给定的正则表达式。你可以通过创建Regex对象并将模式传递给它。以下是一个示例代码:

public static bool IsRegexPatternValid(String pattern) 
{ 
    try 
    { 
     new Regex(pattern); 
     return true; 
    } 
    catch { } 
    return false; 
} 
+0

这就是我目前使用的方法。问题是我正在使用try {} catch {}块。我想知道是否有一个非例外的方式来做到这一点。谢谢 – 2009-09-03 04:21:09

+2

这正是Regex类在.NET中设计的方式 - 要检查一个模式是否有效,您需要编译它并查看是否有任何异常抛出。我从来没有听说过其他方式做这件事。 – Paulius 2009-09-03 04:30:37

+0

呃这很糟糕,如果你使用它作为一个大集合的动态过滤器:( – Sinaesthetic 2015-12-30 02:00:39