常用正则表达式

本工具罗列出诸多常用的正则表达式,附带表达式详解和示例。

一、表单验证类(最常用)

用途 正则表达式 示例 / 说明
邮箱 ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ abc@example.com
验证标准邮箱格式
手机号(中国大陆) ^1[3-9]\d{9}$ 13812345678
11位,以 13-19 开头
身份证号(18位,简单校验) ^\d{17}[\dXx]$ 11010519900307233X
最后一位可以是数字或X
身份证号(15位,旧版) ^\d{15}$ 110105800101001
URL(网址) ^https?://[^\s/$.?#].[^\s]*
或更严格的:^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?
https://www.example.com
支持 http / https
IP 地址(IPv4) `^(25[0-5] 2[0-4][0-9]
密码强度(至少8位,含字母+数字) ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d@$!%*#?&]{8,}$ abc12345
推荐用于用户注册密码校验
密码强度(含特殊字符) ^(?=.*[!@#$%^&*]).{8,}$ 至少一个特殊符号
强密码(大小写字母 + 数字 + 特殊字符,8位以上) ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!?%*#&])[A-Za-z\d@$!?%*#&]{8,}$ Abc@1234
用户名(字母开头,允许字母数字下划线,4-16位) ^[a-zA-Z][a-zA-Z0-9_]{3,15}$ user_123
邮政编码(中国) ^[1-9]\d{5}$ 6位数字,如 100080

二、字符/格式类(通用匹配)

用途 正则表达式 说明
纯数字 ^\d+$ 匹配 123456 这样的数字字符串
正整数 ^[1-9]\d*$ 不允许前导零,如 0123 不合法
非负整数(包括0) ^\d+$或 ^[0-9]+$
小数 / 浮点数 ^\d+\.\d+$或更严格:^-?\d+(\.\d+)?$ 支持正负小数,如 3.14, -0.5
正浮点数 `^\d*.\d+ \d+.\d* 或 [0−9]+([˙0−9]+)?
字母(仅英文字母) ^[A-Za-z]+$ 只允许大小写字母
字母 + 数字 ^[A-Za-z0-9]+$ 无特殊符号,如验证码
匹配 abc123, 排除 a_b
中文字符 ^[\u4e00-\u9fa5]+$ 匹配纯中文,如 中文测试
中文 + 英文 + 数字 ^[\u4e00-\u9fa5A-Za-z0-9]+$ 常用于昵称、姓名
只包含字母、数字、下划线 ^\w+$等价于 ^[A-Za-z0-9_]+$
禁止特殊字符 ^[^<>{}[\]\\\'\"]+$ 排除一些危险或特殊符号

三、网络与编码类

用途 正则表达式 说明
域名(简单) ^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$ 如 example.com
URL(HTTP/HTTPS) ^https?://[^\s/$.?#].[^\s]*$ 匹配 https://example.com/path
十六进制颜色代码 `^#([A-Fa-f0-9]{6} [A-Fa-f0-9]{3})$`
UUID ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ 如 550e8400-e29b-41d4-a716-446655440000
Base64格式(简单判断) ^[A-Za-z0-9+/]+={0,2}$ 通常用于编码数据

四、日期与时间类

用途 正则表达式 说明
YYYY-MM-DD 日期 `^\d{4}-(0[1-9] 1[0-2])-(0[1-9]
YYYY/MM/DD `^\d{4}/(0[1-9] 1[0-2])/(0[1-9]
简单时间 HH:MM:SS `^([01]\d 2[0-3]):([0-5]\d):([0-5]\d)$`
日期时间(YYYY-MM-DD HH:MM:SS) `^\d{4}-(0[1-9] 1[0-2])-(0[1-9]

五、文本/编程/标记类

用途 正则表达式 说明
HTML 标签(简单匹配) <[^>]+> 匹配如 <div>, <p class="xxx">
Email地址 基础版(匹配大多数常见邮箱) ^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ 允许:数字、字母、下划线 + @ + 域名
支持:-、_、. 符号(但不会连续出现)
示例匹配:user.name+123@example.com.cn
Email地址 严格版(符合RFC 5322标准) ^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$ 完全遵循RFC标准,支持复杂格式(如带引号的本地部分和IP地址域名)
但可读性差,实际项目中可能过度严格
Email地址 实用版(平衡严格性和可读性) ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ 允许:字母、数字 + ._%+- 符号
要求:域名至少2位字母(如 .com、.cn)
排除:连续特殊符号或非标准字符
Email地址 带国际域名支持版 ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,20}$ 限制域名后缀长度为2-20个字符(覆盖国际化长域名)
提取 URL https?:\/\/[^\s]+ 从文本中匹配链接
手机号(从文本提取) 1[3-9]\d{9} 扫描文本中的手机号
IP 地址(从文本中提取) \b(?:\d{1,3}\.){3}\d{1,3}\b 简单匹配,不校验范围
中文标点符号 [\u3000-\u303F\uff00-\uffef] 如 ,。!?、;:“”‘’()【】
匹配连续重复字符(如 aaa) (.)\1{2,} 匹配任意字符重复 3 次及以上

六、边界与特殊符号类

用途 正则表达式 说明
字符串开头 ^ 与结尾 $ ^abc$ 必须完全等于 abc
单词边界 \b \bword\b 匹配独立单词 "word"
任意字符 . a.b 匹配如 abc, a1c, a@c
空白字符 \s ^\s*$ 匹配全空或只有空格/Tab 的字符串
非空白 \S ^\S+$ 不允许有空格
数字 \d ^\d{3}$ 等价于 [0-9]
非数字 \D ^\D+$ 不是数字的字符
单词字符 \w ^\w{5,12}$ 等价于 [A-Za-z0-9_]

七、正则表达式常用语法速查表

符号 含义 示例
. 匹配任意单个字符(除换行) a.c→ abc
^ 匹配字符串开头 ^abc
$ 匹配字符串结尾 abc$
* 前一个字符 0 次或多次 a*→ "", a, aa...
+ 前一个字符 1 次或多次 a+→ a, aa...
? 前一个字符 0 或 1 次 a?→ "", a
{n} 前一个字符恰好 n 次 a{3}→ aaa
{n,} 至少 n 次 a{2,}→ aa, aaa...
{n,m} n 到 m 次 a{2,4}
[] 匹配其中任意一个字符 [aeiou]
[^ ] 不匹配括号内字符 [^0-9]
` `
( ) 分组,可捕获 (abc)+
\d 数字 [0-9]
\D 非数字
\w 单词字符 [A-Za-z0-9_]
\W 非单词字符
\s 空白字符
\S 非空白
\b 单词边界
`` 转义字符 \., \*, \\

本站还提供了 正则表达式测试 工具,帮助你来检测正则表达式是否生效,是否能匹配到结果。