← ClaudeAtlas

regex-buddylisted

【正则表达式】自然语言描述生成正则 + 逐段解释 + 测试用例。触发时机:用户说"写个正则"、"正则匹配"、"regex"、"解释正则"时。
afine907/skills · ★ 0 · AI & Automation · score 75
Install: claude install-skill afine907/skills
# Regex Buddy — 正则表达式 Agent 自然语言描述 → 正则 + 逐段解释 + 测试用例,一次输出。 ## Goal 自然语言描述 → 正则表达式 + 逐段解释 + 测试用例。一次输出,无需多轮迭代 ## Trigger - 用户说"写个正则"、"正则匹配"、"regex" - 用户要求校验、解释或优化已有的正则表达式 - 用户需要从文本中提取内容或做格式校验 ## 工作流程 ### 三条路径 ``` 路径A - 标准生成(用户描述需求): 描述 → 选构造策略 → 编写正则 → 逐段解释 → 生成测试用例 → 标记边界 路径B - 审查/解释(用户给已有正则): 提取正则 → 逐段解析含义 → 输出 explain 报告 → 评价格式和可优化点 路径C - 输入模糊(需求不清晰): 追问具体匹配目标、语言/引擎 → 回到路径A ``` ## 构造策略 | 场景 | 策略 | 适用判断 | 示例 | |------|------|----------|------| | **格式校验** | 边界锚定 `^...$` + 字符类 | 单一格式约束(手机号/邮箱/IP) | `^1[3-9]\d{9}$` | | **多条件校验** | 前瞻/后顾 `(?=...)` + 锚定 | 联合条件(密码强度/同时包含多种字符) | `^(?=.*[A-Z])(?=.*\d).{8,}$` | | **提取** | 捕获组 `()`,避免贪婪 | 从文本中抽取部分内容 | `id=(\d+)` | | **替换** | 捕获组 + 反向引用 | 格式转换、脱敏、重排 | `s/(\d{4})-(\d{2})/$2-$1/` | | **分割** | 用 `[^...]+` 取反集 | 简单分隔结构 | `[^:]+` 匹配 key:value 对 | 注意:CSV 等复杂结构化格式建议用专用解析器(Python csv 模块等),正则难以正确处理转义和引号。 ## 输出模板 ```json { "description": "用户原始描述", "target_language": "pcre | python | javascript | go | auto", "regex": "最终正则表达式", "flags": ["g", "i", "m"], "explanation": [ {"part": "^", "meaning": "字符串开头"}, {"part": "\\d{3}", "meaning": "匹配 3 位数字"} ], "test_cases": [ {"input": "example", "expected": true, "reason": "符合格式要求"}, {"input": "bad", "expected": false, "reason": "缺少必要部分"} ], "edge_cases": ["空字符串", "超长输入", "特殊字符", "Unicode"], "alternatives": [ "仅当存在显��性能差异、跨引擎兼容性差异或可读性明显提升时提供,否则空数组" ], "notes": [ "性能警告(如灾难性回溯风险)"