元字符
. 注意是一个点号,表示匹配任意单个字符
\d 表示匹配任意单个数字
[0-9] 等价于0-9
[a-zA-Z] 等价于所有的大小写字母
限定符
+ 加号,表示匹配至少大于1次(1次或多次)
?问号,便是匹配0次或1次
* 星号,匹配0次或多次,贪婪匹配
{n,} {n,m} {m} 匹配限定次数,{n,}表示匹配最少n次,{n,m}表示匹配n次到m次之间,比如{3,5}表示匹配3次或4次或5次,在一个范围内,{n}表示匹配n次,比如{5}表示只有匹配到5次才行
如何验证自己写的正则是否正确呢,可以去正则表达式匹配网站 https://tool.oschina.net/regex/
下面举例验证
1.我要匹配11位手机号,可以写成\d{11},也可以是[0-9]{11},也可以是.{11},也可以是\d{1,11},也可以是[0-9]{1,}但是这只是举例用法,实际中要看场景去使用
也可以用.*匹配出来,但是可以看到匹配到两个结果,因为*表示匹配0次或多次,.表示任意字符,空也是任意字符,所以有两个结果
2.{n,}的用法,如下图所示,可以匹配出来三个,因为表示最少出现一次
3.{n,m}用法,如下图,表示至少出现两次,最多11次,因为"1"只出现一次,不符合条件,所以只匹配到两个结果
</article>