← 返回工具箱
正则表达式速查表
更新于 2026 年 10 月 · 收藏备用,写完 regex 去在线测试工具验证
字符匹配
| 符号 | 含义 |
. | 除换行外的任意字符 |
\d / \D | 数字 / 非数字 |
\w / \W | 字母数字下划线 / 反之 |
\s / \S | 空白字符 / 非空白 |
[abc] | abc 中任意一个 |
[^abc] | 非 abc 的任意字符 |
[0-9] / [a-z] | 范围 |
量词
| 符号 | 含义 |
* | 0 次或多次 |
+ | 1 次或多次 |
? | 0 次或 1 次 |
{n} / {n,} / {n,m} | 恰好 n 次 / 至少 n 次 / n 到 m 次 |
*? / +? | 非贪婪模式(最少匹配) |
位置与分组
| 符号 | 含义 |
^ / $ | 字符串开头 / 结尾 |
\b | 单词边界 |
(abc) | 捕获组,可用 $1 引用 |
(?:abc) | 非捕获组 |
a|b | 或 |
(?=abc) / (?!abc) | 正向先行断言 / 负向先行断言 |
常用实例(直接抄)
| 场景 | 正则 |
| 手机号(中国大陆) | ^1[3-9]\d{9}$ |
| 邮箱 | ^[\w.-]+@[\w.-]+\.\w+$ |
| URL | ^https?://[\w.-]+(:\d+)?(/.*)?$ |
| 身份证号(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]$ |
| IPv4 | ^(\d{1,3}\.){3}\d{1,3}$ |
| 日期 YYYY-MM-DD | ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$ |
| 密码(8位+,含字母数字) | ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$ |
| 去除首尾空格 | ^\s+|\s+$(替换为空) |
避坑提醒
1. 邮箱/URL 别追求"完美正则",RFC 级别的邮箱正则有几千字符,够用就行,关键校验发一封验证邮件。
2. 警惕灾难性回溯:(a+)+$ 这类嵌套量词配长字符串会卡死,加具体边界或改用非贪婪。
3. 用户输入拼进正则前,先用转义函数处理特殊字符,别直接拼接。