I have a piece of code in c# that checks, if a value is a valid regex pattern.
Code is straight forward:
try { System.Text.RegularExpressions.Regex.IsMatch("", pattern); } catch (Exception ex) { return "pattern matches must be a valid regex value"; }
I'm trying to test if it works correctly, but I can't find an invalid regex pattern.
Any suggestions?
The JavaScript exception "invalid regular expression flag" occurs when the flags in a regular expression contain any flag that is not one of: g , i , m , s , u , y or d . It may also be raised if the expression contains more than one instance of a valid flag.
Most characters, including all letters ( a-z and A-Z ) and digits ( 0-9 ), match itself. For example, the regex x matches substring "x" ; z matches "z" ; and 9 matches "9" . Non-alphanumeric characters without special meaning in regex also matches itself. For example, = matches "=" ; @ matches "@" .
This is invalid...
[
You can also test the validity of regular expressions in real-time at http://regexhero.net/tester/
By the way, you don't actually have to test the regular expression against a string to see if it's valid. You can simply instantiate a new Regex object and catch the exception.
This is what Regex Hero does to return a detailed error message...
public string GetRegexError(string _regexPattern, RegexOptions _regexOptions) { try { Regex _regex = new Regex(_regexPattern, _regexOptions); } catch (Exception ex) { return ex.Message; } return ""; }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With