Development•
2026-02-19
•10 min
•alltools.one Team
regexregular-expressionsdevelopmentpatternsvalidation
正则表达式速查表:每个开发者都需要的模式
正则表达式在你学会模式之前感觉像黑魔法。一旦掌握,它们就会成为文本搜索、验证、数据提取和字符串操作中不可或缺的工具。
选择一个模式,粘贴到我们的正则表达式测试器中进行实验,然后根据你的需求进行调整。
核心正则语法
字符类
| 模式 | 匹配 | 示例 |
|---|---|---|
. | 除换行符外的任意字符 | a.c 匹配 "abc"、"a1c" |
\d | 任意数字 (0-9) | \d{3} 匹配 "123" |
\w | 单词字符(字母、数字、下划线) | \w+ 匹配 "hello_1" |
\s | 空白字符 | \s+ 匹配空格 |
[abc] | a、b 或 c 中的任意一个 | [aeiou] 匹配元音字母 |
[^abc] | 除 a、b、c 以外的任意字符 | [^0-9] 匹配非数字 |
[a-z] | 范围内的任意字符 | [A-Za-z] 匹配字母 |
量词
| 模式 | 含义 |
|---|---|
* | 零次或多次 |
+ | 一次或多次 |
? | 零次或一次 |
{n} | 恰好 n 次 |
{n,m} | n 到 m 次之间 |
锚点和分组
| 模式 | 含义 |
|---|---|
^ | 字符串开头 |
$ | 字符串结尾 |
\b | 单词边界 |
(abc) | 捕获组 |
(?:abc) | 非捕获组 |
a|b | 或(选择) |
(?=abc) | 正向前瞻 |
实用模式
邮箱验证
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
URL 匹配
https?:\/\/[\w.-]+(?:\.[a-zA-Z]{2,})(?:\/[\w./?%&=-]*)?
密码强度
至少 8 个字符,一个大写字母,一个小写字母,一个数字,一个特殊字符:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*])[A-Za-z\d!@#$%^&*]{8,}$
生成强密码请使用我们的密码生成器。
十六进制颜色码
^#?([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$
使用我们的颜色转换器在不同颜色格式之间转换。
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}$
使用我们的 UUID 生成器生成有效的 UUID。
正则表达式性能技巧
- 尽量精确 —
[a-zA-Z]比.更快 - 避免灾难性回溯 — 嵌套量词如
(a+)+会导致指数级时间复杂度 - 使用非捕获组 — 当你不需要该值时
- 锚定你的模式 —
^pattern$比未锚定的搜索更快 - 使用边界情况测试 — 部署前使用我们的正则表达式测试器
常见问题
* 和 + 有什么区别?
* 匹配零次或多次出现,+ 要求至少一次。所以 ab*c 匹配 "ac",但 ab+c 不匹配。
如何让正则表达式不区分大小写?
使用 i 标志:JavaScript 中使用 /pattern/i,Python 中使用 re.IGNORECASE。
相关资源
- 邮箱验证的正则表达式 — 在生产环境中有效的模式
- 正则表达式测试工具 — 实时测试和调试模式
- 密码生成器 — 生成符合正则规则的密码
- UUID 生成器 — 生成有效的 UUID