这个[A-Za-z]字符类不是多余的吗?

时间:2013-06-17 13:24:54

标签: regex

我有这个正则表达式^[A-Za-z][0-9A-Za-z\.\@\-]{7,59}$,但在我看来,第一个字符类[A-Za-z]完全是多余的。这是对的吗?

2 个答案:

答案 0 :(得分:11)

不,因为那是坚持字符串以alpha开头(以及ASCII alpha)

^是起始锚点,因此该字符串必须以alpha开头 - 然后您可以使用第二个字符类指定的任何字符。

如果您使用此正则表达式来验证字符串(某种变量名称?),那么您可能还需要结束锚$。否则它不会关心跟随匹配...

^[A-Za-z][0-9A-Za-z\.\@\-]{7,59}$

这意味着字符串总共不得超过60个字符(包括前导字母)。

答案 1 :(得分:3)

不,因为^[A-Za-z]意味着它必须以字母开头(大写与否)。没有它,它可以以字母或数字或与[0-9A-Za-z\.\@\-]

匹配的任何内容开头