元字符
字符和数字
元字符 |
匹配情况 |
. |
匹配除换行符外的任意字符 |
[a-z] |
匹配任何包含小写字母 a-z的字符串 |
[A-Z] |
匹配任何包含大写字母 A-Z的字符串 |
[0-9] |
匹配任何包含数字 0-9 的字符串 |
[a-z0-9] |
匹配括号中的字符集中的任意字符 |
[^a-z0-9] |
匹配任意不在括号中的字符集中的字符 |
\d |
匹配数字,同[0-9] |
\D |
匹配非数字,同[^0-9] |
\w |
匹配字母和数字及_,同[a-zA-Z0-9_] |
\W |
匹配非字母和数字及_,同[^a-zA-Z0-9_] |
空白字符
元字符 |
匹配情况 |
\0 |
匹配 null 字符 |
\f |
匹配进纸字符 |
\n |
匹配换行符 |
\r |
匹配回车字符 |
\t |
匹配制表符 |
\s |
匹配空白字符、空格、制表符和换行符 |
\S |
匹配非空白字符 |
锚字符
元字符 |
匹配情况 |
^ |
行首匹配 |
$ |
行尾匹配 |
\A |
只有匹配字符串开始处 |
\b |
匹配单词边界,词在[]内时无效 |
\B |
匹配非单词边界 |
\G |
匹配当前搜索的开始位置 |
\z |
只匹配字符串结束处 |
\Z |
匹配字符串结束处或行尾 |
量词
元字符 |
匹配情况 |
{x} |
匹配任何包含 x 个前导字符串 |
{x,y} |
匹配任何包含 x 到 y 个前导字符串 |
{x,} |
匹配任何包含至少 x 个前导字符串 |
+ |
匹配任何至少包含一个前导字符串,同{1,} |
* |
匹配任何包含零个或多个前导字符串,同{0,} |
? |
匹配任何包含零个或一个前导字符串,同{0,1} |
| |
匹配字符串的左边或者右边 |
() |
包围一个字符分组或定义个反引用,可以使用\1\2 提取 |
PHP修饰符
语法 |
描述 |
i |
忽略大小写 |
m |
在匹配首内容或者尾内容时候采用多行识别匹配 |
x |
忽略正则中的空白 |
A |
强制从头开始匹配 |
U |
禁止贪婪匹配 只跟踪到最近的一个匹配符并结束 |
JavaScript修饰符
语法 |
描述 |
i |
忽略大小写 |
m |
多行匹配 |
g |
全局匹配 |
JavaScript禁止贪婪匹配在量词后加?,如+?,*?,{n,}?
常用正则表达式
校验数字的正则表达式
匹配内容 |
正则表达式 |
数字 |
^\d*$ |
n位数字 |
^\d{n}$ |
至少n位的数字 |
^\d{n,}*$ |
m到n位的数字 |
^\d{m,n}$ |
自然数(零和非零开头的数字) |
^(0|[1-9]\d*)$ |
校验字符的正则表达式
匹配内容 |
正则表达式 |
汉字 |
^[\u4e00-\u9fa5]*$ |
英文和数字 |
^[A-Za-z0-9]+$ |
由26个英文字母组成的字符串 |
^[A-Za-z]+$ |
由26个大写英文字母组成的字符串 |
^[A-Z]+$ |
由26个小写英文字母组成的字符串 |
^[a-z]+$ |
由数字和26个英文字母组成的字符串 |
^[A-Za-z0-9]+$ |
由数字、26个英文字母或者下划线组成的字符串 |
^\w+$ |
中文、英文、数字包括下划线 |
^[\u4E00-\u9FA5A-Za-z0-9_]+$ |
中文、英文、数字但不包括下划线等符号 |
^[\u4E00-\u9FA5A-Za-z0-9]+$ |
特殊需求正则表达式
匹配内容 |
正则表达式 |
邮箱 |
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ |
域名 |
[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.? |
URL |
[a-zA-z]+://[^\s]* |
手机号码 |
^(13|14|15|18|17)[0-9]{9}$ |
电话号码 |
^(\(\d{3,4}-)|\d{3,4}-)?\d{7,8}$ |
国内电话号码 |
d{3}-\d{8}|\d{4}-\d{7} |
身份证号 |
^\d{17}[\d|x]|\d{15}$ |
短身份证号码(数字、字母x结尾) |
^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$ |
用户名(字母开头,允许5-16字节,允许字母数字下划线,字母开头) |
^[a-zA-Z][a-zA-Z0-9_]{4,15}$ |
日期格式 |
^\d{4}-\d{1,2}-\d{1,2}$ |
腾讯QQ号 |
^[1-9][0-9]{4,}$ |
中国邮政编码 |
[1-9]\d{5} |
IP地址 |
(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d) |