进阶

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

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

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

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

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

    A|B 可以匹配A或B,所以 [P|p]ython 可以匹配 'Python' 或者 'python'

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

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

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