RunToolz iconRunToolz
Welcome to RunToolz!
正则表达式编程速查表

每个开发者都该收藏的 20 个正则表达式

最实用的正则表达式速查表——邮箱、URL、手机号、IP、日期等。复制粘贴即可使用。

RunToolz Team2026年2月2日6 min read

正则表达式是那种工作时感觉像魔法、不工作时让人抓狂的工具。我收集实用模式已经好几年了,这 20 个是我反复使用的。

收藏这个页面。你会回来的。

你会忘记的基础

在看模式之前,快速复习容易混淆的部分:

  • . 匹配任意字符(除换行)
  • * 表示零个或多个,+ 表示一个或多个,? 表示零个或一个
  • \d 是数字,\w 是单词字符,\s 是空白
  • ^ 是字符串开头,$ 是字符串结尾
  • () 分组,[] 定义字符类,{} 设置数量

20 个模式

1. 邮箱地址

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

覆盖大多数真实邮箱。不完全符合 RFC 5322(几乎没有什么完全符合),但处理 99% 的有效地址。

2. URL(HTTP/HTTPS)

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

匹配带路径和查询字符串的 HTTP 和 HTTPS URL。

3. 手机号(国际)

^\+?[1-9]\d{1,14}$

E.164 格式——国际通用。中国手机号:^1[3-9]\d{9}$

4. IPv4 地址

^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$

验证每个八位组在 0-255 之间。更简单的模式会接受像 999.999.999.999 这样的无效地址。

5. IPv6 地址

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

基本的完整格式 IPv6。不覆盖缩写表示法(::),但处理最常见的格式。

6. 日期(YYYY-MM-DD)

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

ISO 8601 日期格式。验证月和日的范围,但不检查像 2 月 31 日这样的不可能日期。

7. 时间(HH:MM,24 小时制)

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

24 小时格式,00:00 到 23:59。

8. 十六进制颜色代码

^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$

匹配 3 位和 6 位十六进制颜色:#fff#1a2b3c

9. 强密码

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

至少 8 个字符,包含大写、小写、数字和特殊字符。根据需要调整最小长度和允许的字符。

10. 用户名

^[a-zA-Z0-9_-]{3,20}$

字母数字加下划线和连字符,3-20 个字符。

想亲自试试吗?测试这些模式

11. HTML 标签

<\/?[\w\s]*>|<.+[\W]>

匹配开始和结束 HTML 标签。不要用正则来解析 HTML——用专门的解析器。但快速搜索时可以用。

12. 去除空白

^\s+|\s+$

匹配首尾空白。清理操作时很有用。

13. 重复词

\b(\w+)\s+\1\b

捕获重复的词,如 "the the" 或 "is is"。校对文本时很好用。

14. 文件扩展名

\.([a-zA-Z0-9]+)$

提取文件扩展名。分组 1 给出不带点的扩展名。

15. URL 友好字符串(slug)

^[a-z0-9]+(?:-[a-z0-9]+)*$

验证 URL slug:小写字母、数字和连字符。不允许连续连字符,不以连字符开始或结束。

16. 信用卡号(基础)

^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13})$

检测 Visa、MasterCard 和 American Express 模式。仅做格式验证——实际验证请始终使用支付处理器。

17. UUID v4

^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

验证带正确版本和变体位的 UUID 版本 4 格式。

18. JSON 字符串值

"(?:[^"\\]|\\.)*"

匹配正确转义的 JSON 字符串值,正确处理反斜杠转义。

19. CSS 属性

([a-z-]+)\s*:\s*([^;]+);

提取 CSS 属性-值对。分组 1 是属性名,分组 2 是值。

20. Markdown 链接

\[([^\]]+)\]\(([^)]+)\)

匹配 [文本](url) 链接。分组 1 是链接文本,分组 2 是 URL。

使用正则的建议

从简单开始逐步构建。 不要试图一次写出完美的模式。从最简单的可用版本开始,然后添加边界情况处理。

使用测试工具。 部署前一定要用真实数据测试你的模式。边界情况会让你惊讶。

加注释。 大多数正则引擎支持详细模式,可以添加注释和空白来提高可读性。

知道什么时候不用正则。 解析 HTML、验证复杂日期或处理深度嵌套结构——这些用专门的解析器。

想亲自试试吗?测试你的正则模式

你还可以用 文本对比 验证正则替换是否产生了正确的输出,或用 字符计数 检查匹配字符串的长度。


正则是一项随练习进步的技能。你不需要记住每条语法规则——只需要知道足够多来阅读模式并根据需要修改它们。把这份速查表放在手边,你就能少花时间在 Stack Overflow 上,多花时间在实际开发上。