正则表达式语法小结

来源:互联网 发布:黑白网络怎么关了 编辑:程序博客网 时间:2024/06/07 20:34

iamlaosong文

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

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

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

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

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

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

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

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

3、特殊符号

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

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

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

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

1 . 校验身份证号码

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

15位:

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

18位:
^[1-9]\d{5}[1-9]\d{3}((0\d)|(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}-((0\d)|(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+)*$


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




原创粉丝点击