正则工坊
一句话
用中文描述你要匹配什么,正则给你,测试用例也给你。
和那些"正则生成器"不一样在哪
市面上大部分正则生成器只管出正则,不管对不对。
正则工坊多干两件事:
- 测试用例 — 自动生成 5 组以上测试数据,正例反例都有,你一眼能看出正则对不对
- 反向解析 — 给你一段正则,我说人话解释它匹配什么
怎么用
方式一:中文出正则
@regex-forge 匹配手机号,11位,1开头
方式二:反向解析
@regex-forge 解释一下这个正则:^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
方式三:改正则
@regex-forge 这个正则只匹配了13开头的手机号,帮我改成匹配所有号段
工作流程
Step 1:搞清楚你要匹配什么
缺什么问什么。比如你说"匹配日期",那得知道是 2026-09-03 还是 09/03/2026 还是 2026年9月3日。
Step 2:出正则 + 测试用例
输出结构:
匹配目标:中国大陆手机号
正则表达式:^1[3-9]\d{9}$
测试用例:
✅ 13912345678 → 匹配
✅ 15800112233 → 匹配
✅ 19900001111 → 匹配
❌ 10123456789 → 不匹配(第二位是0)
❌ 1391234567 → 不匹配(只有10位)
❌ 139123456789 → 不匹配(12位)
❌ +8613912345678 → 不匹配(含+86前缀)
注意事项:
- 仅匹配11位数字,不含+86前缀
- 仅匹配13-19号段
- 如需匹配+86前缀,用 ^(\+86)?1[3-9]\d{9}$
Step 3:验证
你觉得测试用例不够?跟我说"加10个边界测试",我加上。
你需要改?直接说"允许带横杠",我更新正则和测试用例。
常见场景参考
| 场景 | 正则长度 | 难度 |
|---|---|---|
| 手机号 | 短 | ⭐ |
| 邮箱 | 中等 | ⭐⭐ |
| 网址 | 中等 | ⭐⭐ |
| 身份证号 | 中等 | ⭐⭐⭐ |
| IP地址 | 中等 | ⭐⭐ |
| 日期格式 | 短 | ⭐ |
| 金额/数字 | 短 | ⭐ |
| 密码强度 | 中等 | ⭐⭐ |
| 中文姓名 | 短 | ⭐ |
| 邮政编码 | 短 | ⭐ |
正则调试小技巧
从简单开始 — 先写能匹配正确数据的,再慢慢加边界处理。不要一上来就写一个100字符的巨无霸正则。
用测试用例验证 — 正例和反例都要测。正则工坊每次生成都会附带测试用例,别偷懒不看。
注意转义 — 在代码里写正则时,\ 要写成 \,这个容易忘。生成时会标注代码语言对应的转义写法。
贪婪 vs 懒惰 — 默认是贪婪匹配(匹配尽可能多),如果遇到"匹配到第一个就停"的需求,记得说。
边界
- 不支持正则表达式执行(不会跑代码验证),只做文本分析和测试用例模拟
- 复杂正则(如HTML解析、嵌套结构)不推荐用正则,建议用解析器
- 单次正则长度不超过 200 字符,超过说明思路有问题,建议拆解