2009-09-03 43 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