常用正则表达式速查表

841 字
4 分钟
常用正则表达式速查表

常用正则表达式速查表#

本文收集了日常开发中常用的正则表达式,方便快速复制使用。


常用校验总结#

  • IPv4^(?:(?: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-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

  • 手机号^1[3-9]\d{9}$

  • 域名^[a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?(\.[a-zA-Z]{2,})+$

  • URL^https?:\/\/[a-zA-Z0-9][-a-zA-Z0-9@:%._\+~#=]{0,255}\.[a-zA-Z]{2,6}\b[-a-zA-Z0-9@:%_+.~#?&/=]*$

  • 日期^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$

  • 时间^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$

  • 身份证号^[1-9]\d{5}(?:19|20)\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])\d{3}[\dXx]$


IP 地址#

IPv4 地址#

^(?:(?: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]?)$

说明:匹配标准 IPv4 地址,范围 0.0.0.0 - 255.255.255.255

匹配示例

  • 192.168.1.1
  • 10.0.0.255
  • 255.255.255.255
  • 256.0.0.1
  • 192.168.1.

IPv6 地址#

^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$|^::$|^([0-9a-fA-F]{1,4}:){1,7}:$|^([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}$|^([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}$|^([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}$|^([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}$|^([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}$|^[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})$|^:((:[0-9a-fA-F]{1,4}){1,7}|:)$

简化版(匹配完整格式)

^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$

说明:匹配标准 IPv6 地址

匹配示例

  • 2001:0db8:85a3:0000:0000:8a2e:0370:7334
  • 2001:db8:85a3::8a2e:370:7334
  • ::1

带端口的 IP 地址#

^(?:(?: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]?)(?::[0-9]{1,5})?$

说明:匹配带可选端口的 IPv4 地址,端口范围 0-65535

匹配示例

  • 192.168.1.1:8080
  • 10.0.0.1

域名#

域名(通用)#

^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$

说明:匹配标准域名,支持多级子域名

匹配示例

  • example.com
  • www.example.com
  • api.test.example.cn
  • -example.com
  • example..com

域名(含端口)#

^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}(?::[0-9]{1,5})?$

说明:匹配带可选端口的域名


顶级域名#

\.(com|org|net|edu|gov|mil|int|eu|cn|jp|kr|tw|hk|au|uk|de|fr|ru)$

说明:匹配常见顶级域名


邮箱地址#

标准邮箱#

^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$

简化版(常用)

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

说明:匹配标准邮箱地址

匹配示例

  • user@example.com
  • user.name@example.org
  • user+tag@mail.example.com
  • @example.com
  • user@.com

手机号码#

中国大陆手机号#

^1[3-9]\d{9}$

说明:匹配中国大陆手机号,以1开头,第二位为3-9

匹配示例

  • 13812345678
  • 15987654321
  • 12012345678
  • 1381234567

带区号的手机号#

^(\+?86)?1[3-9]\d{9}$

说明:匹配带可选+86前缀的手机号


URL#

HTTP/HTTPS URL#

^https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)$

说明:匹配 HTTP/HTTPS URL

匹配示例

  • https://www.example.com
  • http://api.example.com/path?query=1
  • https://example.cn/page#section

URL 路径提取#

https?:\/\/([^\/]+)(.*)

说明:分组捕获域名和路径


日期时间#

日期格式 YYYY-MM-DD#

^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$

说明:匹配标准日期格式

匹配示例

  • 2024-01-15
  • 2024-12-31
  • 2024-13-01
  • 2024-02-30

时间格式 HH:MM#

^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$

说明:匹配24小时制时间

匹配示例

  • 14:30:00
  • 00:00:00
  • 23:59:59
  • 25:00:00

日期时间组合#

^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01]) (?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$

说明:匹配 YYYY-MM-DD HH:MM:SS 格式


身份证号#

18位身份证号#

^[1-9]\d{5}(?:19|20)\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])\d{3}[\dXx]$

说明:匹配18位身份证号(含校验位)

匹配示例

  • 110101199001011234
  • 33010620001231001X

银行卡号#

银行卡号(16-19位)#

^[0-9]{16,19}$

说明:匹配常见银行卡号长度


中文字符#

匹配中文#

[\u4e00-\u9fa5]

说明:匹配单个中文字符


全中文#

^[\u4e00-\u9fa5]+$

说明:匹配纯中文字符串


数字#

整数#

^-?\d+$

说明:匹配正负整数


小数#

^-?\d+\.\d+$

说明:匹配小数


数字(整数或小数)#

^-?\d+(?:\.\d+)?$

说明:匹配整数或小数


密码强度#

强密码(至少8位,含大小写和数字)#

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$

说明:至少8位,包含大小写字母和数字


更强密码(含特殊字符)#

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$

说明:至少8位,包含大小写字母、数字和特殊字符


文件路径#

Unix/Linux 路径#

^(/[^/]+)+/?$

说明:匹配 Unix/Linux 风格路径

匹配示例

  • /home/user/file.txt
  • /var/log/

Windows 路径#

^[A-Za-z]:\\(?:[^\\/:*?"<>|\r\n]+\\)*[^\\/:*?"<>|\r\n]*$

说明:匹配 Windows 风格路径

匹配示例

  • C:\Users\file.txt
  • D:\Program Files\

HTML 标签#

匹配 HTML 标签#

<([a-zA-Z][a-zA-Z0-9]*)(?:\s+[^>]*)?>.*?</\1>|<[a-zA-Z][a-zA-Z0-9]*(?:\s+[^>]*)?\s*/?>

说明:匹配自闭合标签和成对标签


使用注意事项#

  1. 语言差异:不同编程语言的正则语法略有差异(如 JavaScript 的 \d 匹配 Unicode 数字)

  2. 性能考虑:复杂正则表达式可能影响性能,建议在大量数据处理时优化

  3. 边界匹配:使用 ^$ 确保完整匹配,避免部分匹配

  4. 转义问题:在字符串中使用时注意转义特殊字符(如 \\ 表示 \

  5. 测试验证:使用在线工具测试正则表达式,确保符合预期


提示:复制正则表达式时,请根据实际使用场景调整,必要时添加捕获组或修改匹配逻辑。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

常用正则表达式速查表
https://blog.cllll.link/posts/useful-regular-expressions/
作者
clll
发布于
2026-06-05
许可协议
CC BY-NC-SA 4.0
最后更新于 2026-06-05,距今已过 56 天

部分内容可能已过时

Profile Image of the Author
clll
Hello, I'm clll.
公告
Hello, World!
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
19
分类
3
标签
57
总字数
29,930
运行时长
0
最后活动
0 天前

目录