2009-09-03 8 views
19

私は、後で入力データを検証するために使用される正規表現をユーザーが提供できる.NETでアプリケーションを開発しています。正規表現を検証する方法は?

正規表現が実際に.net regexエンジンに有効かどうかを知る方法が必要です。

ありがとうございました

答えて

30

与えられた正規表現をコンパイルしようとしました。これは、Regexオブジェクトを作成し、それにパターンを渡すことで実現できます。ここにサンプルコードがあります:

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

これは私が現在使っているアプローチです。問題は私がtry {} catch {}ブロックを使用していることです。私はこれを行う例外的でない方法があるかどうかを知りたがっていました。それにもかかわらずありがとうございます –

+2

これはRegexクラスが.NETで設計されている方法です。パターンが有効かどうかを調べるために、コンパイルして例外がスローされるかどうかを確認する必要があります。私はこれを行う他の方法について聞いたことはありません。 – Paulius

+0

大規模なコレクションを動的フィルタとして使用している場合、これは難しいです。 – Sinaesthetic