PHP正则表达式总结

一、校验数字的表达式

1 数字:
^[0-9]* 2n\dn 2 n 位 的 数 字 : \d n
3 至少n位的数字:
^\d{n,} 4mn\dm,n 4 m − n 位 的 数 字 : \d m , n
5 零和非零开头的数字:
^(0|[1-9][0-9]*) 6([19][09])+(.[09]1,2)? 6 非 零 开 头 的 最 多 带 两 位 小 数 的 数 字 : ( [ 1 − 9 ] [ 0 − 9 ] ∗ ) + ( . [ 0 − 9 ] 1 , 2 ) ?
7 带1-2位小数的正数或负数:
^(-)?\d+(.\d{1,2})? 8(|+)?\d+(.\d+)? 8 正 数 、 负 数 、 和 小 数 : ( − | + ) ? \d + ( . \d + ) ?
9 有两位小数的正实数:
^[0-9]+(.[0-9]{2})? 101 3[09]+(.[09]1,3)? 10 有 1   3 位 小 数 的 正 实 数 : [ 0 − 9 ] + ( . [ 0 − 9 ] 1 , 3 ) ?
11 非零的正整数:
^[1-9]\d* ([19][09])1,3 或 ( [ 1 − 9 ] [ 0 − 9 ] ∗ ) 1 , 3 或 ^+?[1-9][0-9]* 12[19][]09 12 非 零 的 负 整 数 : − [ 1 − 9 ] [ ] 0 − 9 ” ∗ 或 ^-[1-9]\d* 13\d+ 13 非 负 整 数 : \d + 或 ^[1-9]\d*|0 14[19]\d|0 14 非 正 整 数 : − [ 1 − 9 ] \d ∗ | 0 或 ^((-\d+)|(0+)) 15\d+(.\d+)? 15 非 负 浮 点 数 : \d + ( . \d + ) ? 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0 16((\d+(.\d+)?)|(0+(.0+)?)) 16 非 正 浮 点 数 : ( ( − \d + ( . \d + ) ? ) | ( 0 + ( .0 + ) ? ) ) 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0 17[19]\d.\d|0.\d[19]\d 17 正 浮 点 数 : [ 1 − 9 ] \d ∗ . \d ∗ | 0. \d ∗ [ 1 − 9 ] \d ∗ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)) 18([19]\d.\d|0.\d[19]\d) 18 负 浮 点 数 : − ( [ 1 − 9 ] \d ∗ . \d ∗ | 0. \d ∗ [ 1 − 9 ] \d ∗ ) 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))) 19(?\d+)(.\d+)? 19 浮 点 数 : ( − ? \d + ) ( . \d + ) ? 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$

二、校验字符的表达式

1 汉字:
^[\u4e00-\u9fa5]{0,} 2[AZaz09]+ 2 英 文 和 数 字 : [ A − Z a − z 0 − 9 ] + 或 ^[A-Za-z0-9]{4,40} 3320.3,20 3 长 度 为 3 − 20 的 所 有 字 符 : . 3 , 20
4 由26个英文字母组成的字符串:
^[A-Za-z]+ 526[AZ]+ 5 由 26 个 大 写 英 文 字 母 组 成 的 字 符 串 : [ A − Z ] +
6 由26个小写英文字母组成的字符串:
^[a-z]+ 726[AZaz09]+ 7 由 数 字 和 26 个 英 文 字 母 组 成 的 字 符 串 : [ A − Z a − z 0 − 9 ] +
8 由数字、26个英文字母或者下划线组成的字符串:
^\w+ \w3,20 或 \w 3 , 20
9 中文、英文、数字包括下划线:
^[\u4E00-\u9FA5A-Za-z0-9_]+ 10线[\u4E00\u9FA5AZaz09]+ 10 中 文 、 英 文 、 数 字 但 不 包 括 下 划 线 等 符 号 : [ \u 4 E 00 − \u 9 F A 5 A − Z a − z 0 − 9 ] + 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}11 可以输入含有^%&’,;=? 11 可以输入含有^%&’,;=? \”等字符:
[^%&’,;=?$\x22]+
12 禁止输入含有~的字符:
[^~\x22]+

三、特殊需求表达式

1、 Email地址:
^\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*$
2 、域名:
[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
3 、InternetURL:
[a-zA-z]+://[^\s]* 或 ^http://([\w-]+.)+[\w-]+(/[\w-./?%&=]*)? 4(13[09]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d8 4 、 手 机 号 码 : ( 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 、电话号码(“XXX-XXXXXXX”、”XXXX-XXXXXXXX”、”XXX-XXXXXXX”、”XXX-XXXXXXXX”、”XXXXXXX”和”XXXXXXXX):
^((\d{3,4}-)|\d{3.4}-)?\d{7,8} 6(0511440522202187888822)\d3\d8|\d4\d771518\d15|\d18 6 国 内 电 话 号 码 ( 0511 − 4405222 、 021 − 87888822 ) : \d 3 − \d 8 | \d 4 − \d 7 7 、 身 份 证 号 : 15 或 18 位 身 份 证 : \d 15 | \d 18
15位身份证:
^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3} 18[19]\d5[19]\d3((0\d)|(1[02]))(([0|1|2]\d)|3[01])\d4 18 位 身 份 证 : [ 1 − 9 ] \d 5 [ 1 − 9 ] \d 3 ( ( 0 \d ) | ( 1 [ 0 − 2 ] ) ) ( ( [ 0 | 1 | 2 ] \d ) | 3 [ 0 − 1 ] ) \d 4
8、 短身份证号码(数字、字母x结尾):
^([0-9]){7,18}(x|X)? \d8,18|[09x]8,18|[09X]8,18? 或 \d 8 , 18 | [ 0 − 9 x ] 8 , 18 | [ 0 − 9 X ] 8 , 18 ?
9 、帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):
^[a-zA-Z][a-zA-Z0-9_]{4,15} 10(6 18线)[azAZ]\w5,17 10 、 密 码 ( 以 字 母 开 头 , 长 度 在 6   18 之 间 , 只 能 包 含 字 母 、 数 字 和 下 划 线 ) : [ a − z A − Z ] \w 5 , 17
11 、强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间):
^(?=.\d)(?=.[a-z])(?=.*[A-Z]).{8,10} 12\d4\d1,2\d1,21312(0109112)(0?[19]|1[02]) 12 、 日 期 格 式 : \d 4 − \d 1 , 2 − \d 1 , 2 13 、 一 年 的 12 个 月 ( 01 ~ 09 和 1 ~ 12 ) : ( 0 ? [ 1 − 9 ] | 1 [ 0 − 2 ] )
14 、一个月的31天(01~09和1~31):
^((0?[1-9])|((1|2)[0-9])|30|31) 15161.:10000.0010,000.00,1000010,000[19][09] 15 、 钱 的 输 入 格 式 : 16 、 1. 有 四 种 钱 的 表 示 形 式 我 们 可 以 接 受 : ” 10000.00 ” 和 “ 10 , 000.00 ” , 和 没 有 “ 分 ” 的 “ 10000 ” 和 “ 10 , 000 ” : [ 1 − 9 ] [ 0 − 9 ] ∗
17、 2.这表示任意一个不以0开头的数字,但是,这也意味着一个字符”0”不通过,所以我们采用下面的形式:
^(0|[1-9][0-9]*) 183.00.(0|?[19][09]) 18 、 3. 一 个 0 或 者 一 个 不 以 0 开 头 的 数 字 . 我 们 还 可 以 允 许 开 头 有 一 个 负 号 : ( 0 | − ? [ 1 − 9 ] [ 0 − 9 ] ∗ )
19 、4.这表示一个0或者一个可能为负的开头不为0的数字.让用户以0开头好了.把负号的也去掉,因为钱总不能是负的吧.下面我们要加的是说明可能的小数部分:
^[0-9]+(.[0-9]+)? 205.,1,10.,1010.2[09]+(.[09]2)? 20 、 5. 必 须 说 明 的 是 , 小 数 点 后 面 至 少 应 该 有 1 位 数 , 所 以 ” 10. ” 是 不 通 过 的 , 但 是 “ 10 ” 和 “ 10.2 ” 是 通 过 的 : [ 0 − 9 ] + ( . [ 0 − 9 ] 2 ) ?
21、 6.这样我们规定小数点后面必须有两位,如果你认为太苛刻了,可以这样:
^[0-9]+(.[0-9]{1,2})? 227..,[09]1,3(,[09]3)(.[09]1,2)? 22 、 7. 这 样 就 允 许 用 户 只 写 一 位 小 数 . 下 面 我 们 该 考 虑 数 字 中 的 逗 号 了 , 我 们 可 以 这 样 : [ 0 − 9 ] 1 , 3 ( , [ 0 − 9 ] 3 ) ∗ ( . [ 0 − 9 ] 1 , 2 ) ?
23 、8.1到3个数字,后面跟着任意个 逗号+3个数字,逗号成为可选,而不是必须:
^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})? 24,+(,?),,25xml([azAZ]+?)+[azAZ09]+\.[x|X][m|M][l|L] 24 、 备 注 : 这 就 是 最 终 结 果 了 , 别 忘 了 ” + ” 可 以 用 ” ∗ ” 替 代 如 果 你 觉 得 空 字 符 串 也 可 以 接 受 的 话 ( 奇 怪 , 为 什 么 ? ) 最 后 , 别 忘 了 在 用 函 数 时 去 掉 去 掉 那 个 反 斜 杠 , 一 般 的 错 误 都 在 这 里 25 、 x m l 文 件 : ( [ a − z A − Z ] + − ? ) + [ a − z A − Z 0 − 9 ] + \. [ x | X ] [ m | M ] [ l | L ]
26 、中文字符的正则表达式:
[\u4e00-\u9fa5]
27 、双字节字符:
[^\x00-\xff]
(包括汉字在内,可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1))
28 、空白行的正则表达式:\n\s*\r (可以用来删除空白行)
29 、HTML标记的正则表达式:
<(\S*?)[^>]>.?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值