5

名前付きの正規表現をデータベースに保存するアプリケーションを構築しています。次のようになります。

正規表現形式

Asp.Net フォームを使用しています。入力した正規表現を検証するにはどうすればよいですか? 入力した正規表現が有効な .Net 正規表現でないかどうかをユーザーに知らせたいと考えています。

フィールドは次のような値を拒否する必要があります。

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

2 に答える 2

6

そこから新しい正規表現クラスを作成します。例外がスローされた場合は無効です。

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 に答える