进阶

    要做更精确地匹配,可以用 [] 表示范围,比如:

    • [0-9a-zA-Z_] 可以匹配一个数字、字母或者下划线;

    • [0-9a-zA-Z_]+ 可以匹配至少由一个数字、字母或者下划线组成的字符串,比如 'a100' , '0_Z' , 'js2015' 等等;

    • [a-zA-Z_\$][0-9a-zA-Z_\$]* 可以匹配由字母或下划线、$开头,后接任意个由一个数字、字母或者下划线、$组成的字符串,也就是JavaScript允许的变量名;

    • [a-zA-Z_\$][0-9a-zA-Z_\$]{0, 19} 更精确地限制了变量的长度是1-20个字符(前面1个字符+后面最多19个字符)。

    A|B 可以匹配A或B,所以 [J|j]ava[S|s]cript 可以匹配 'JavaScript' 'Javascript' 'javaScript' 或者 'javascript'

    ^ 表示行的开头, ^\d 表示必须以数字开头。

    $ 表示行的结束, \d$ 表示必须以数字结束。

    你可能注意到了, js 也可以匹配 'jsp' ,但是加上 ^js$ 就变成了整行匹配,就只能匹配 'js' 了。