I was trying to validate a company name in a web application and had this regex pattern
^[a-zA-Z_'\\s,;.-0-9]{1,100}$
The above pattern will reject the value 10004 Estates Limited
But if I bring forward 0-9 so the pattern becomes
^[a-zA-Z0-9_'\\s,;.-]{1,100}$
then it works. Am new to regex and patterns, but I know I should be using more of it, so I want to be clear on this. Thanks.
-is a special character in character classes and thus.-0-9is ambiguous and probably gets the meaning.to0and-and9, so essentially the characters./09-.To include a hyphen-minus in a character class you’d either have to escape it or place it at the start or end of the character class (which is what you’re doing in the second regex, maybe by accident).
Edited to add: Above guess seems to be correct, at least for .NET’s regex engine: