Agent Skills
返回列表
💻

正则表达式生成器

开发编程 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @kunlungrowth/cn-regex-generator。

技能介绍

正则表达式难在哪

写正则的人很少是"不会写",而是"记不住"。\d{9} 是数字,^ 和 $ 是锚点,[3-9] 是区间——单个符号都不难,难的是把它们组合起来描述一类文本。

具体困难有这么几个:

  • 方言差异:同一个 \d,在 Java 里默认只匹配 ASCII 数字,在 Python 里还能匹配 Unicode 数字。直接从博客抄一段正则过来,换个引擎就可能静默出错。
  • 边界条件:1[3-9]\d{9} 看着简单,但少写一个 ^,21381234567 也会被匹配上;输入里多了没处理的空格,整条规则直接失效。
  • 看懂比写更难:接手别人的代码,看到 (?<=[A-Z])\w{4,8} 时,多数人会绕开它改逻辑,而不是读懂它。

这个技能怎么工作

它把"描述需求 → 得到正则"做成了固定的四步流程:

  1. 需求描述:用自然语言说清是要匹配、提取还是校验哪类文本。
  2. 正则构建:生成表达式,并补齐容易被遗漏的锚点和转义。
  3. 测试用例:给出应当匹配成功的样本,以及应当匹配失败的反例。没有反例的验证基本等于没验证。
  4. 逐段解释:把 ^1[3-9]\d{9}$ 拆成 ^、1、[3-9]、\d{9}、$ 分别说明含义。

方言方面支持 JavaScript、Python、Java 三种,默认按 JavaScript 处理,需要时显式指定。方言差异是这里最容易埋 bug 的地方——同一个模式在不同引擎里语义并不完全一致。

适用边界

  • 适合结构规整、能用字符类和量词描述的文本:手机号、邮箱、日期、金额、文件名。
  • 不适合需要语义理解的场景,比如"找出投诉中情绪激烈的话",那是分类问题,不是模式匹配问题。
  • 需求过于复杂时,技能会提示拆成多个子问题处理,而不是硬生成一条长表达式。两百多字符的正则基本不可维护。
  • 返回的用例是起点而非完备的测试套件,正式接入前建议在自己的数据上再跑一遍。

使用场景

  • 后端给接口写手机号字段校验时,需要拿到带边界锚点的正则和一批应匹配、不应匹配的测试用例
  • 爬虫拿到混杂正文后要提取日期和编号,不想自己拼长表达式反复试错
  • 新人接手旧代码,需要逐段看懂别人写好的长正则分别匹配什么

适合人员

  • 后端工程师:给接口加字段校验,需要能指定语言方言的可用正则
  • 数据处理开发者:清洗或抽取不规范文本,需要测试用例来验证提取结果
  • 接手遗留代码的工程师:需要读懂他人写好的复杂匹配逻辑