一、字符集
- [n1n2n3]放所有集合,每次只能匹配一个,可以多次匹配
- [n1n2n3]中备选字符是连续的,可用-省略中间字符
- [3456789]简写[3-9]
- [0123456789]简写[0-9]
- []有多个[]是一样的可以省略用个数代替
- 其它简写:
- 要匹配一位小写字母:[a-z] 共26个
- 要匹配一位大写字母:[A-Z] 共26个
- 要匹配一位字母: [A-Za-z] 共52个
- 要匹配一位字母或数字:[0-9A-Za-z] 共62个
- 要匹配一位汉字:[\u4e00-\u9fa5]
- 19968 ~ 40869 共20902个
二、预定字符集
正则表达式语法为四种最常用的字符集定义了最简化写法,称为预定义字符集。
包括:
- 要匹配一位数字: \d(digital) 等效于 [0-9]
- 要匹配一位字母、数字或_: \w 等效于 [0-9A-Za-z_]
- 要匹配一位空字符:\s(space) 可匹配 空格、制表符Tab等空白
- 要匹配所有文字(通配符): . (不常用)
- 所以,手机号规则可进一步简写为:
- 1[3-9]\d\d\d\d\d\d\d\d\d
三、数量词
{n}数量词,是专门规定一个字符集出现次数的规则
今后,只要一个字符集在规则中可能连续反复出现多次,就要用数量词以简写方式定义出现次数。
如何:数量词紧跟在其修饰的字符集之后,默认修饰相邻的前一个字符集
数量词包括两大类:
1. 有明确数量边界的数量词
- 字符集{n} 表示字符集必须重复n次,不能多也不能少
- 字符集{n,m} 表示字符集至少重复n次,最多重复m次,
- 比如: \d{4,6} 表示4到6位数字
- 字符集{n,} 表示字符集匹配的内容至少重复n次,多了不限,比如:\d{6,} 表示6位以上数字
2. 没有明确数量边界的数量词
-
* 可有可无,多了不限
-
? 可有可无,最多一次
-
+ 至少一次,多了不限