用 Prompt 生成正则表达式进行文本匹配实战
在日常文本处理中,正则表达式是提取、过滤和验证数据的利器,但编写正则往往需要记忆复杂的元字符和语法,门槛较高。利用大语言模型(LLM)通过自然语言描述需求来生成正则,能大幅降低使用门槛,提升效率。
一、为什么结合 AI 与正则?
传统方式下,编写一个精准的正则需要对 \d、*、分组等语法规则非常熟悉,且需反复调试。而Prompt 驱动的正则生成允许非技术人员直接描述需求,核心价值体现在:
- 效率提升:无需死记硬背,几句自然语言描述即可生成目标正则。
- 降低门槛:运营、编辑等非技术岗位也能完成复杂的文本匹配任务。
- 场景适配:支持灵活描述边缘情况,如'匹配带区号的手机号但排除 170 开头'。
二、正则基础回顾(为 Prompt 打基础)
为了让模型生成准确的正则,我们需要在 Prompt 中清晰描述核心要素。以下是文本匹配最常用的基础概念:
| 核心要素 | 作用说明 | 常见示例 |
|---|---|---|
| 元字符 | 代表特定字符类型或规则 | \d (数字), \w (字母/数字/下划线), . (任意字符) |
| 量词 | 定义重复次数 | * (0 次或多次), + (1 次或多次), {n,m} (n 到 m 次) |
| 分组与捕获 | 将元素视为整体或提取内容 | (abc) (捕获组), (?:abc) (非捕获组) |
| 字符集 | 匹配指定范围内的字符 | [a-z], [0-9A-Z], [^0-9] (非数字) |
| 边界匹配 | 限制匹配位置 | ^ (开头), $ (结尾), \b (单词边界) |
理解这些后,我们在 Prompt 中就能更精准地描述需求,例如明确'匹配以 1 开头、包含 11 位数字的手机号',而非模糊的'匹配手机号'。
三、Prompt 设计的核心原则与结构
要让模型生成可用、精准的正则,建议遵循需求明确化、场景具象化、约束清晰化三大原则,并采用固定的四段式结构。
1. 设计原则
- 需求明确化:拒绝模糊描述。反例:'匹配邮箱';正例:'匹配以@qq.com 结尾的邮箱,用户名允许字母数字,长度 6-20 位'。
- 场景具象化:提供正面和负面示例。例如:'匹配中国身份证号(18 位),正面示例:110101...,负面示例:17 位数字'。
- 约束清晰化:明确工具环境。不同工具对语法支持不同(如 Excel 不支持
\d,需用 替代)。


