名前付きの正規表現をデータベースに保存するアプリケーションを構築しています。次のようになります。
Asp.Net フォームを使用しています。入力した正規表現を検証するにはどうすればよいですか? 入力した正規表現が有効な .Net 正規表現でないかどうかをユーザーに知らせたいと考えています。
フィールドは次のような値を拒否する必要があります。
^Wrong(R[g[x)]]$
Invalid\Q&\A
名前付きの正規表現をデータベースに保存するアプリケーションを構築しています。次のようになります。
Asp.Net フォームを使用しています。入力した正規表現を検証するにはどうすればよいですか? 入力した正規表現が有効な .Net 正規表現でないかどうかをユーザーに知らせたいと考えています。
フィールドは次のような値を拒否する必要があります。
^Wrong(R[g[x)]]$
Invalid\Q&\A
そこから新しい正規表現クラスを作成します。例外がスローされた場合は無効です。
try{
new Regex(expression)
}
catch(ArgumentException ex)
{
// invalid regex
}
// valid regex
知っている。コード ロジックに例外を使用するのは間違っています。しかし、これは唯一の解決策のようです。
おそらくこのようなもの:
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;
}
}
}