加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式语法小结

发布时间:2020-12-14 06:45:58 所属栏目:百科 来源:网络整理
导读:iamlaosong文 最近学了一下正则表达式,正则表达式说起来很复杂,似乎很难记,其实总结起来也就三点,一个是匹配符,另一个限定符,最后就是特殊符号。记住下面三点,正则表达式不说会写,一些简单的起码会看了。 1、匹配符表示一个字符匹配情况 如具体的字

iamlaosong文

最近学了一下正则表达式,正则表达式说起来很复杂,似乎很难记,其实总结起来也就三点,一个是匹配符,另一个限定符,最后就是特殊符号。记住下面三点,正则表达式不说会写,一些简单的起码会看了。

1、匹配符表示一个字符匹配情况

如具体的字符,d表示数字,w表示字母数字和下划线和数字,.(点)表示任意字符,s表示空白符如空格和制表符,t表示制表符等。

[]中括号中可以列举可能出现的字符,如[0-9],[a-z],[+-.],中括号中的字符就是具体的字符,没有特别含义。

2、限定符表示前面匹配符的匹配程度

+表示匹配至少1次,*表示任意次包括0次,?表示匹配0次或1次。

{n,m}这种形式表示至少匹配n次,最多m次,m不写表示不限定最大次数。

上面的匹配都可以用这种形式表示,比如+={1,}、*={0,}、?={0,1},只是上面的形式比较简单而已。

3、特殊符号

^表示开头,$表示结尾,|表示或,即竖线两边的值可以任选一边。

()用于分组,括号中的值表示一种匹配模式,括号外可以跟限定符表示匹配程度。

===================================

最后,用几个常见的表达式案例说明上面的小结:

1 .校验身份证号码

下面是身份证号码的正则校验。15 或 18位。

15位:

^[1-9]d{7}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{3}$

18位:
^[1-9]d{5}[1-9]d{3}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{3}([0-9]|X)$


2. 校验日期

“yyyy-mm-dd“ 格式的日期校验

10位:^d{4}-d{2}-d{2}$

考虑到首位是0可以不写的话:^d{1,4}-d{1,2}-d{1,2}$

复杂一点,按上面身份证上的日期匹配方法:

^d{4}-((0d)|(1[0-2]))-(([0|1|2]d)|3[0-1])$


3. 校验金额

金额校验,精确到2位小数。
^[0-9]+(.[0-9]{2})?$


4. 校验手机号

下面是国内 13、15、18开头的手机号正则表达式。(可根据目前国内收集号扩展前两位开头号码)
^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])d{8}$

5. Email地址

^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$


网上有很多现成的表达式,可以对照着看。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读