当用户需要根据自然语言描述生成正则表达式、验证正则表达式模式,或根据测试反馈优化现有正则表达式时,应使用此技能。 适用于以下请求场景,例如:“帮我写个正则”、“匹配手机号”、“验证邮箱格式”、“提取链接”、“密码校验正则”、“用户名验证”、“generate a regex”、“validate phone number”、“regex for email”、“正则表达式”、“手机号正则”、“邮箱正则”,或任何与正则表达式相关的验证任务。
正则生成器 Skill是一项面向实际任务的技能,主要用于1. 提取关键信息;从用户输入中提取:;
字符类型(数字、字母、大小写、特殊字符);格式要求(开头/结尾、分隔符、固定前缀);使用场景 :验证、提取、替换、分割;2. 识别意图;判断输入是否符合规则;使用 ^ 和 $ 锚点,确保完整匹配;从文本中找出匹配内容;
可能使用 g。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
从用户输入中提取:
| 意图 | 描述 | 标志特点 |
|---|---|---|
| 验证 | 判断输入是否符合规则 | 使用 ^ 和 $ 锚点,确保完整匹配 |
| 提取 | 从文本中找出匹配内容 | 可能使用 g 全局标志,不需要锚点 |
| 处理 | 替换或分割内容 | 关注捕获组 () 和替换逻辑 |
根据提取的信息和意图,生成合适的正则表达式:
默认不自动生成网页,而是主动询问用户:
"需要我生成一个可视化验证网页吗?可以在浏览器中实时测试这个正则。"
如果用户明确说"要"、"生成"、"做个网页"等肯定词,再执行以下步骤:
特征+UUID格式,例如 regex-phone-a1b2c3d4.html,避免覆盖已有文件open_result_view 交付(不要用 preview_url,会导致页面被覆盖)如果用户说"不用"、"不需要网页"、"不要生成"等否定词,则跳过生成步骤。
验证工具包含:
生成命令:
# 生成带 UUID 的文件名(保留历史文件) UUID=$(python3 -c "import uuid; print(str(uuid.uuid4())[:8])") python3 scripts/generate_tester.py "" " " "<描述>" " " > "regex-<特征>-${UUID}.html"
文件名生成示例:
regex-usphone-a1b2c3d4.htmlregex-password-e5f6g7h8.htmlregex-email-i9j0k1l2.html注意:不再删除旧文件,每个新生成的验证工具都有唯一文件名,方便对比历史版本。
🎯 生成的正则 表达式:// 意图:<验证/提取/处理> 解释:<逐段解释正则含义> 📋 使用示例 JavaScript: Python:🔍 可视化验证工具 已生成验证工具:regex-tester.html - 点击链接打开或运行:python scripts/generate_tester.py ... - 在工具中添加测试用例,实时查看匹配结果 💡 反馈调整 如果验证结果不对,告诉我: - "应该匹配但没匹配:<内容>" - "不该匹配但匹配了:<内容>" - "需要支持:<新需求>"
用户测试后反馈问题 → 分析原因 → 调整正则 → 重新输出
常见调整场景:
| 场景 | 示例正则 |
|---|---|
| 手机号 | ^1[3-9]d{9}$ |
| 邮箱 | ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$ |
| 密码(8位+大小写+数字) | ^(?=.*[a-z])(?=.*[A-Z])(?=.*d).{8,}$ |
| URL | ^https?://[^s/$.?#].[^s]*$ |
| 身份证号 | ^d{17}[dXx]$ |
| 中文字符 | [u4e00-u9fa5]+ |
| 日期(YYYY-MM-DD) | `^d{4}-(0[1-9] |
# 基本用法
python scripts/validate.py "^1[3-9]\d{9}$" "13800138000"
# 带标志(flags 为整数,如 re.IGNORECASE=2)
python scripts/validate.py "^[a-z]+$" "ABC" 2
# 输出示例
{"match": true, "groups": [], "full_match": true}
Python re 模块标志值:
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章