Can I test if a regex is valid in C# without throwing exception

后端 未结 8 1880
挽巷
挽巷 2020-12-03 13:19

I allow users to enter a regular expression to match IP addresses, for doing an IP filtration in a related system. I would like to validate if the entered regular expression

8条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-03 13:54

    I think exceptions are OK in this case.

    Just make sure to shortcircuit and eliminate the exceptions you can:

    private static bool IsValidRegex(string pattern)
    {
        if (string.IsNullOrWhiteSpace(pattern)) return false;
    
        try
        {
            Regex.Match("", pattern);
        }
        catch (ArgumentException)
        {
            return false;
        }
    
        return true;
    }
    

提交回复
热议问题