正则表达式

元字符

元字符 名称 匹配对象
. 点号 单个任意字符
[...] 字符组 列出的任意字符
[^...] 点号 未列出的任意字符
^ 脱字符 行的起始位置; 在[后面表示取反的意思。
$ 美元符 行的结束为止
\< 反斜线-小于 单词的起始位置
\> 反斜线-大于 单词的结束位置
| 竖线 或,匹配分割两边的任意一个表达式
(...) 括号 限制竖线的作用范围。
\b 匹配一个单词边界,也就是指单词和空格间的位置。
\d 匹配一个数字字符。等价于 [0-9]。
\w 匹配字母、数字、下划线。等价于'[A-Za-z0-9_]'。
\f 匹配一个换页符。等价于 \x0c 和 \cL。
\n 匹配一个换行符。等价于 \x0a 和 \cJ。
\r 匹配一个回车符。等价于 \x0d 和 \cM。
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
\t 匹配一个制表符。等价于 \x09 和 \cI。
\v 匹配一个垂直制表符。等价于 \x0b 和 \cK。

限定符

元字符 名称 匹配对象
* 星号 零次或多次
+ 加号 一次或多次
? 问号 零次或一次

反义词

元字符 名称 匹配对象
\W 匹配非字母、数字、下划线。等价于 '[^A-Za-z0-9_]'。
\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\D 匹配一个非数字字符。等价于 [^0-9]。
\B 匹配非单词边界。

修正符

元字符 名称 匹配对象
i 不区分大小写
m 多行识别
s 将字符串视为单行,转义回车换行符作为普通字符
g 全局匹配
x 忽略空白
A 强制从目标字符串开头匹配
D 强制尾部无任何内容.若使用$限制结尾字符,则不允许结尾有换行
U 禁止贪婪匹配,只匹配最近的一个字符串(不重复匹配)
e 配合PHP函数preg_replace()使用,可以把匹配来的字符串当作正则表达式执行

汇集了常用的正则表达式,以后大家不用再从网上各种搜索了,欢迎批评指正。

名称 表达式 备注
0 或 非0开头数字(非负整数) /^(0|[1-9]\d*)$/
中文汉字 /^[\u4e00-\u9fa5]*$/
英文或数字 /^[A-Za-z\d]*$/
英文字母 /^[A-Za-z]*$/
数字或字母或_ /^[\w]*$/
中文或数字或字母或_ /^[\u4E00-\u9FA5\w]*$/
允许输入这些特殊字符 /^[%&',;=?$]*$/
禁止输入这些特殊字符 /^[^%&',;=?$]*$/
QQ号校验 /^[1-9]\d{4,10}$/
邮政编码 /^\d{6}$/
12个月匹配 /^(0?[1-9]|1[0-2])$/
每月31天匹配 ^((0?[1-9])|((1|2)[0-9])|30|31)$
匹配金钱 /^-?([1-9](\d*))|(0{1})(\.\d{1,2})?$/ 99
99.01
0.01
0.3
邮箱校验 /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
域名校验 /^([a-zA-Z\d][a-zA-Z\d-_]+\.)+[a-zA-Z\d-_][^ ]*$/
URL校验 /^((((ht)|f)tps?):\/\/)?[\w-]+(\.[\w-]+)+([\w.,@?^=%&:/~+#-\(\)]*[\w@?^=%&/~+#-\(\)])?$/ http://
https://
ftp://
可以不带http|https|ftp
电话号码 ^0\d{2,3}-?\d{7,8}$
手机号码 /^((13[0-9])|(14[5,7,9])|(15[^4])|(16[6])|(17[0-9])|(18[0-9])|(19[0-9]))\d{8}$/ 13.........
145........,147........,149........
150........,151........,152........,153........,155........,156........,157........,158........,159........
166........
17.........
18.........
19.........
0~255字符串 /^((00)?\d|0?\d{2}|1\d\d|2[0-4]\d|25[0-5])$/
IP5地址 /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/
身份证校验 /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/
密码校验 /^(?![a-zA-z]+$)(?!\d+$)(?![`~!@#$%^&*()_\-+= <> ?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、]+$)[a-zA-Z\d`~!@#$%^&*()_\-+= <> ?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、]+$/ 数字/字母/特殊字符至少两种
统一社会信用代码 /[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{10}/g 《GB_32100-2015_法人和其他组织统一社会信用代码编码规则》
  • 统一代码为18位,统一代码由十八位的数字或大写英文字母(不适用I、O、Z、S、V)组成,由五个部分组成:
  • 第一部分(第1位)为登记管理部门代码,9表示工商部门;(数字或大写英文字母)
  • 第二部分(第2位)为机构类别代码;(数字或大写英文字母)
  • 第三部分(第3-8位)为登记管理机关行政区划码;(数字)
  • 第四部分(第9-17位)为全国组织机构代码;(数字或大写英文字母)
  • 第五部分(第18位)为校验码(数字或大写英文字母)
车牌号(新能源+非新能源) /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$/
16进制颜色 /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/ #fefefe
#333
fefefe
中文姓名 /^(?:[\u4e00-\u9fa5·]{2,16})$/
匹配html标签 /^ <[^> ]+>$/

以上正则表达式已经过校验,请放心使用,无毒,绿色,满足大部分业务需求!

另外提供个正则表达式的在线校验工具: 正则表达式在线测试