可有可无 正则_正则数量描述

正则数量描述

我们都知道手机号的第2位是有要求的,是数字的其中某几个,那我们怎么表示呢???

[] 匹配[]中列举的字符

注意:这几个字符之间不能有空格逗号什么的。

下面的模式规则是说:只要是3 4 5 7 8 其中的任何一个就可以。

dbafe5a6062d58fd1475c689d9a35525.png7cdc57fd6734755008d33c976954cf2e.png

前面我们学过的\d\s\w都有它的相反规则,那在方括号里面能不能达到相反的效果呢???可以的:

68008cf99390bfa2ca3e78e9377eda86.png0f9272f95f51b3674908eabd206120b9.png

如果觉得这样不好理解的话,也可以下面这样:

e9c7aac14dce5c221e4f8c1b19dad7d3.png

那这样写很累的啊,所以像前面这样只写一个就可以了。

如果第二位是26个小写字母+数字呢???
中横线代表一个区间的范围。

5dbc9a9d1f4ba5f6c8df9600ae6864c5.png

总结如下:

\d == [0-9]

\D == [^0-9]

\w == [a-zA-Z0-9_]

\W == [^a-zA-A0-9_]

我们再来看:手机号的匹配规则,后面写了那么多的\d,那有没有一种可以描述数量的规则呢????

目前手机号的第二位也是有要求的,目前市场上有13*,14*,15*,17*,18*

9f8dc7f0ee6583b546ef17f2d1d9d9c4.png

表示数量

1bbb40a2a6ffad474a6862bbcf43777d.png

* 匹配前一个字符出现0次或者无限次,即可有可无

下面\d*说的是:*前面的字符也就是\d是可以出现0次或者无限次的,即可有可无的。

1bee055edeae23741c55dbe8825fcfe5.png68fc1561befa4ddcf639acc107b00f49.png0f7c2615018751f531ae3901ad2bea26.png6fc555d665b05ed86e11b0e69879ff53.png

+ 匹配前一个字符出现1次或者无限次,即至少有1次

13ca19c7188eef99f4ef8749101fac45.png

匹配前一个字符出现1次或者0次,即要么有1次,要么没有

cd55e529bb773f107fc3c283a9acc785.png

为什么下面的是匹配的呢???

11a81f17c8d1f8aebe1a8a6a9d14904e.png

这个规则只是描述了一位信息,也就是拿后面的字符串1与描述的规则进行匹配,我们发现是匹配了,那这个match方法就已经认定符合匹配了,至于后面是什么就不管了。

再来看下面的:

0e7db85376e709b15cfaaac8a5faf257.png60b3ee60988bb1f4783fb8f7c2f45f87.pngf2ecba27ce53704722a02b8cb38fce88.png

以\d+[a-z]为例来说一下:有的同学以为:第一位是\d+,第二位是[a-z]里的其中一个,所以认为会不匹配的,但是它不是这样的,这不是这个意思,由于我们给\d后面加了一个描述数量的信息,也就是\d是可以写任意多个的,也就是与下面这样是等价的:

324d1706af7215be41d1f59653f337ed.png

那+号后面的[a-z]到底是第几位信息,它就不确定了,它得先让前面的数够了,直到不匹配了,那开始[a-z]呢。

{m} 匹配前一个字符出现m次

5faeb1861f9dff931a94dd90ccfa0feb.png

63e9a8589d5094376ff655b638897c04.png7eddd9c5f95870c010df1afb9efca3f7.png

它等价于下面:

a0a5f9a09f2f7b37f480f9851a1dc8f6.png

{m,} 匹配前一个字符至少出现m次

下面是说3次以上:

0e49a910a3af10462489253443aa142c.png

下面是说5次以上:

d17b0055f630bacd8d7b0a175fcb6e63.png

{0,} 可以代表*号的意思也就是等价的意思:

96860d93b0761225348fb19158724e21.png

{1,}  可以代表+号的意思也就是等价的意思:

9338058062b2e0dc94f9f5fd88eb1e2a.png

{m,n} 匹配前一个字符出现从m次到n次

5747b2467f89d06f55af53a82c7dec09.png

{0,1}可以代表?号的意思也就是等价的意思:

a98f0c3d9966866399b6bcf08571dfb5.png

再来精细一下手机号的验证规则:

4de6cc8c56cbe434e4a8857cc5350e30.png

练一练

3e9cfc8bcfd3c72a49ee1e800e9f4a20.png

f95393cc5e5ce0f4c0c887dc9302ec19.png

[a-z0-9][a-z0-9_]{2,14}[a-z0-9]@sina\.com$

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值