编辑用 AI 写正则表达式:描述规则让 AI 生成并解释
在媒体或出版机构负责选题、采写和审校的编辑,日常工作里选题策划、改稿、写标题和摘要、校对事实,每天要处理大量文字。正则表达式功能强大但难写难读,用自然语言描述规则让 AI 生成,再用测试样例验证,是最省事的做法。下面以编辑的真实场景为例,演示用 AI 写正则表达式的完整流程:给 AI 提供规则描述、应该匹配和不应该匹配的样例,让它生成正则并逐段解释,再在测试工具中验证。
使用场景
编辑需要从一堆文本里批量提取或替换内容,比如从“稿件统计”导出的文本中找出日期、编号或金额。手动处理几百条太慢,自己写正则又总是写错。尤其当主编同时还在等“和两位作者沟通改稿意见”的结果时,能把这部分工作提速,就能腾出精力处理更重要的判断。
工具选择
可以用 ChatGPT、Claude、DeepSeek 等对话助手生成正则,用 regex101 等在线工具测试;VS Code、Cursor 等编辑器的 AI 助手也能直接在文件中生成和应用。
一个虚构的例子
下面这个例子是虚构的:阿美遇到的难题是“一位重要作者交稿可能延期”。为了不让它拖慢“校对一本书稿的前三章”的进度,阿美决定借助 AI 写正则表达式。第一次只写了一句简单的要求,结果很空泛;第二次把对象(主编)、目的和限制条件都写清楚,输出就可用多了。这也是本文提示词模板要把背景写全的原因。
分步操作
- 说明使用环境:Python、JavaScript、Excel 还是编辑器查找替换
- 描述规则,并提供 3-5 个应该匹配的例子
- 再提供 2-3 个不应该匹配的例子
- 让 AI 生成正则并逐段解释
- 在测试工具中用真实样例验证后再批量使用
提示词示例
下面的提示词可以直接复制,按编辑的实际情况替换细节:
【背景】最近在处理“校对一本书稿的前三章”,同时要准备“优化栏目标题风格”。
请帮我写一个 Python 正则表达式,用于从文本中提取日期和编号。
规则:
1. 日期格式可能是 2026-10-16、2026/10/16、2026年10月16日
2. 编号格式是两个大写字母加 6 位数字,例如 AB123456
应该匹配:
- “发布日期:2026/10/16,编号 AB123456”
- “2026年9月3日处理的 CD000123”
不应该匹配:
- “AB12345”(只有 5 位数字)
- “2026-13-01”(月份不合法)
请分别给出两个正则,逐段解释,并写一段 Python 示例代码。
AI 输出示例(示意)
下面是演示用的输出示例,其中的人名、数字和事项均为虚构,实际使用时请以你自己的资料为准:
日期
(\d{4})[-/年](0?[1-9]|1[0-2])[-/月](0?[1-9]|[12]\d|3[01])日?
(\d{4}):4 位年份[-/年]:分隔符(0?[1-9]|1[0-2]):1-12 月(0?[1-9]|[12]\d|3[01])日?:1-31 日,可选“日”字编号
\b[A-Z]{2}\d{6}\b示例代码
import re text = "2026年9月3日处理的 CD000123" print(re.findall(r"\b[A-Z]{2}\d{6}\b", text))注意:中文与字母相邻时 \b 可能不按预期工作,必要时改用 (?<![A-Z0-9]) 和 (?![0-9])。
拿到类似的结果后,阿美的做法是先核对事实和数字,再结合“优化栏目标题风格”的安排调整重点,最后才对外使用。
实用技巧与常见坑
- 一定要提供不应该匹配的例子,否则 AI 写的正则往往过于宽松。
- 批量替换前先备份,或先只做查找确认结果。
- 复杂规则拆成多个简单正则,比一个巨型正则更好维护。
给编辑的特别提醒
用 AI 生成多个标题候选,再结合你对读者的理解挑选。另外,AI 不能替代事实核查,人名、数字、引语都要回到原始信源确认。
一个容易被忽略的习惯:让 AI 先做结构和逻辑层面的改稿建议,再做字词润色,效率更高。
还可以这样用
- 编辑器批量替换:在 VS Code 或 Word 通配符中批量改格式。
- 解释正则:把看不懂的正则交给 AI,让它逐段说明。