正则表达式语法小结
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位:
“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])$
金额校验,精确到2位小数。
下面是国内 13、15、18开头的手机号正则表达式。(可根据目前国内收集号扩展前两位开头号码)
5. Email地址 ^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$
网上有很多现成的表达式,可以对照着看。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |