我试图在Web应用程序中验证公司名称,并且使用此正则表达式模式
^[a-zA-Z_'\\s,;.-0-9]{1,100}$
上述模式将拒绝值 10004 Estates Limited
但是如果我提出0-9,那么模式变成
^[a-zA-Z0-9_'\\s,;.-]{1,100}$
然后就可以了。正则表达式和模式是新手,但我知道我应该使用更多它,因此我想对此进行澄清。谢谢。
-是字符类中的一个特殊字符,因此.-0-9是歧义的,可能会.赋予0和-和含义9,因此本质上是字符./09-。
-
.-0-9
.
0
9
./09-
要在字符类中包含连字符减号,您必须将其转义或将其放在字符类的开头或结尾(这是您在第二个正则表达式中所做的,也许是偶然的)。
编辑添加:至少对于.NET的正则表达式引擎,以上猜测似乎是正确的:
PS> [char[]](32..127) -match '[a-zA-Z_''\s,;.-0-9]' ' , - . / 0 9 ; A ...