一行正则卡了一下午——让AI替我写、替我测之后,每次只花三分钟
一个所有开发者都懂的场景
你有没有过这样的经历:产品经理发来一条消息,“帮我把用户输入里的手机号、邮箱和身份证号都校验一下”。听起来简单,打开编辑器,开始写正则。
手机号好办,1[3-9]\d{9}。邮箱开始复杂了,身份证号要考虑15位老身份证和18位带校验位的,中间还要防住用户故意输入的特殊字符。写完之后你不确定它到底对不对,只好去网上搜“在线正则测试”,把十几个测试用例一个个粘进去,发现邮箱那条把 test@localhost 也放过了,或者身份证的校验位根本没算。
一个小时过去了,正则越改越长,你开始怀疑人生。这不是能力问题——正则本来就是“写完就忘”的东西,没有人能长期记住所有边界情况。痛点总结起来就三条:写不出来、看不懂、测不全。
AI到底能帮你做什么
我后来把这件事完全交给了AI,流程固定成四步,每次大约三分钟:
第一步:说清楚需求,让AI生成正则。 不用自己憋语法,用人话描述匹配规则、来源场景、要防的坑。AI会给出正则,并且——这点很关键——附上每一段的解释。
第二步:让AI自己列边界用例。 这是我觉得最有价值的一步。人会漏想边界,但如果你明确要求AI列出“应该匹配的10个例子和不该匹配的10个例子”,它给出的清单往往包含你没料到的:全角数字、带空格的手机号、末尾是 x 的身份证、超长邮箱、Emoji混入。
第三步:跑一遍验证脚本。 把正则和用例丢给AI或本地脚本,一次性跑完所有断言,绿了才算过。
第四步:让它给出防御性建议。 比如哪些场景应该用捕获组提取而不是整体匹配、正则在极端输入下会不会有灾难性回溯。
可直接复用的提示词模板
你是一位资深后端工程师,精通正则表达式的编写与测试。
我的需求:
【匹配目标】:(描述要匹配的内容,如:中国大陆手机号)
【数据来源】:(如:用户注册表单的自由输入)
【必须匹配】:(列出应命中的例子)
【必须排除】:(列出不应命中的例子,尽量刁钻)
【运行环境】:(如:Python re / JavaScript / PCRE,说明差异)
请你完成以下工作:
1. 给出正则表达式,并逐段解释含义;
2. 额外补充至少10个边界测试用例(5个应命中、5个应排除),
包括我没想到的情况,如全角字符、空格、超长输入;
3. 用伪代码展示验证流程,确保每个用例都有断言;
4. 指出该正则的已知局限,以及是否存在回溯风险;
5. 如果我的需求本身有歧义,先提问再给答案。第5条特别值得保留——它让AI在你需求没说清时先反问,而不是自信地给你一个错误的正则。
前后对比:数字说话
按我自己的记录,同样是“手机号+邮箱+身份证”三件套校验:
| 环节 | 自己写 | 用AI |
|---|---|---|
| 写初版正则 | 25分钟 | 1分钟 |
| 想边界用例 | 通常想不到 | 2分钟生成20个 |
| 在线工具逐条测 | 40分钟+ | 1分钟跑脚本 |
| 上线后被Bad Case返工 | 平均1次,约30分钟 | 基本为0 |
| 合计 | 约1.5小时 | 约4分钟 |
一次节省80多分钟听起来不多,但正则需求是高频的:表单校验、日志提取、数据清洗、爬虫解析、评论过滤……一个独立开发者一个月碰上五六次很正常。按每月6次算,就是每月省出8小时左右——一整个工作日。对小团队来说,如果三个人都在写正则,一年下来的时间成本相当可观。
更难量化但同样重要的是确定性。以前上线正则心里总有点虚,现在每次都带着20个边界用例的断言上线,返工几乎消失。省时间是一方面,省下的反复调试和“凌晨被告警叫醒”才是大头。
三个实战提醒
- 一定要指定运行环境。 同一个正则在 JavaScript 和 Python 里行为可能不同,尤其是 Unicode 处理。提示词模板里那一行别删。
- 边界用例让AI生成,但由你把关。 AI列的用例偶尔也会集体跑偏(比如全按美式手机号格式来),扫一眼清单只要10秒。
- 能不用正则就别硬上。 身份证校验位这类逻辑,AI也会建议你用代码算而不是塞进正则——听它的。
写在最后
正则是我把“AI辅助开发”纳入日常工作流最早、也是回报最直接的场景之一:需求明确、验证客观、对错一目了然,AI很难蒙混过关。如果你刚接触AI编程辅助,从这个场景切入几乎没有学习成本。
如果你还没有趁手的AI工具账号,可以去注册一个试试,把上面的模板直接粘贴过去跑一遍:
https://api.thistoken.ai/register
第一次看到20个测试用例全部变绿的时候,你会明白这篇文章在说什么。
---
想直接跑通示例?访问 https://api.thistoken.ai/register 注册 ThisToken.AI,获取 API Key 后即可开始。