簡體   English   中英

如何驗證輸入是否包含有效的.Net正則表達式?

[英]How to validate if the input contains a valid .Net regular expression?

我正在構建一個將命名正則表達式保存到數據庫中的應用程序。 看起來像這樣:

正則表達式

我正在使用Asp.Net表單。 如何驗證輸入的正則表達式? 它希望用戶知道輸入的正則表達式是否不是有效的.Net正則表達式。

該字段應拒絕以下值:

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

從中創建新的Regex類。 如果它拋出異常,那么它是無效的。

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;
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM