表一(常用正则规范):
规范: 描述:
\ 反斜线(\)字符
\t 制表符
\n 换行
[abc] 字符a或b或c
[^abc] 除了a、b、c之外的任意字符
[a-zA-z0-9] 由字母、数字组成
\d 任意一个数字
\D 非数字
\w (任意一个)字母、数字、下划线
\W 非字母、数字、下划线
\s (任意一个) 所有空白字符(换行、制表符、换行符、空格等)
\S 所有非空白字符
^ 行的开头
$ 行的结尾
. 匹配除换行符之外的任意字符
例子:
[2-8a-n]表示的是2到8和a到n。
正则表达式的特殊符号被包含到中括号内则失去特殊含义,仅代表对应的字符,除了^和-。
表二(数量表示(X表示一组规范))修饰匹配次数的符号:
规范: 描述:
X 必须出现一次
X? 可以出现0次或1次
X* 可以出现0次或1次或多次
X+ 可以出现1次或多次
X{n} 必须出现n次(匹配n次)
X{n,} 必须出现n次以上
X{n,m} 必须出现n~m次(最少n次,最多m次)
X{n,m}这个有两种模式,一种是贪婪模式(默认模式),越多越好,也就是m次。
另外一种是非贪婪模式,要在括号后面加?,越少越好,也就是n次。
会存在\d{3,}的情况,不存在\d{,6}的情况,可以写\d{0,6}。
例如:\d{3,6}
贪婪模式:匹配6次
例:
(\d\d){6}匹配12次
\d\d{6}匹配7次,因为大括号只修饰前一个符号。
例如有1 2 3 456777
\d{6}会匹配456777
有ab a1b a34b a8987b
a\d?b=a\d{0,1}b,匹配ab和a1b
a\d+b=a\d{1,}b,匹配a1b和a34b和a8987b
a\d*b=a\d{0,}b,匹配ab和a1b和a34b和a8978b
表三(逻辑运算符(X、Y表示一组规范)):
规范: 描述:
XY X规范后跟着Y规范
X|Y X规范或Y规范
(X) 作为一个捕获组规范