← 返回教程列表
每个开发者都应掌握的 20 个常用正则表达式模式
· 标签: common-regex-patterns, regex-examples, useful-regex, email-regex, url-regex, phone-regex
每个开发者都应掌握的 20 个常用正则表达式模式
正则表达式能解决实际问题:输入校验、数据提取和字符串转换。本指南介绍 20 个即用型正则表达式,覆盖最常见的文本处理任务。每个模式都附有匹配内容的说明。
1. 电子邮件地址
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
本地部分允许字母、数字、点号和特殊字符。域名允许字母、数字和点号。顶级域名必须至少包含两个字母。
2. URL
https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z]{2,}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)
匹配带可选 www、域名、顶级域名、路径和查询字符串的 HTTP/HTTPS URL。
3. 美国电话号码
^\(?(\d{3})\)?[-.\s]?(\d{3})[-.\s]?(\d{4})$
匹配 (555) 123-4567、555-123-4567、555.123.4567 和 5551234567。
4. 国际电话号码
^\+?(\d{1,3})\s?[-.\s]?\(?\d{1,4}\)?[-.\s]?\d{1,4}[-.\s]?\d{1,9}$
用于带国家代码的国际号码的宽松模式。
5. 强密码
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$
要求至少 8 个字符,包含一个小写字母、一个大写字母、一个数字和一个特殊字符。使用前瞻断言。
6. 日期(YYYY-MM-DD)
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$
ISO 8601 格式。月份 01-12,日期 01-31。不校验各月份的天数上限(2 月 30 日也能通过)。
7. 日期(MM/DD/YYYY)
^(0[1-9]|1[0-2])\/(0[1-9]|[12]\d|3[01])\/\d{4}$
带斜杠的美式格式。
8. 时间(HH:MM 24 小时制)
^([01]\d|2[0-3]):[0-5]\d$
小时 00-23,分钟 00-59。
9. IPv4 地址
^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$
四个八位组。如需严格校验(0-255),请将 \d{1,3} 替换为 (25[0-5]|2[0-4]\d|[01]?\d\d?)。
10. IPv6 地址
^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$
完整的 IPv6 地址,包含 8 组十六进制数字。不处理 :: 简写。
11. MAC 地址
^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$
以冒号或连字符分隔。
12. 十六进制颜色代码
^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
3 位(#fff)或 6 位(#ffffff),不区分大小写。
13. 信用卡号
^\d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4}$
16 位数字,可带可选分隔符。不校验 Luhn 校验和。
14. 美国邮政编码
^\d{5}(-\d{4})?$
12345 或 12345-6789。
15. 用户名
^[a-zA-Z0-9_]{3,16}$
3-16 个字符,仅限字母、数字和下划线。
16. URL 别名(slug)
^[a-z0-9-]+$
小写字母、数字和连字符。常见于 CMS 系统中。
17. HTML 标签
<\/?[\w\s]*>|<.+[\w\s]*>
匹配开始标签和结束标签。不适用于嵌套 HTML。
18. 文件扩展名
\.([a-zA-Z]{2,})$
提取不带点号的扩展名。
19. 空白字符规范化
\s+
将多个空格、制表符或换行符折叠为一个。
20. 提取数字
-?\d+(\.\d+)?
整数和小数,包括负数。
性能提示
- 尽量具体——避免使用可能导致灾难性回溯的
.*。 - 使用
^和$进行锚定,以限制搜索范围。 - 测试边界情况:空字符串、长字符串、特殊字符。
在线测试这些模式
使用正则表达式测试工具来试验这些模式。粘贴任意表达式,输入示例文本,即可实时看到匹配高亮。测试器会显示捕获组,并帮助你在使用前调试模式。