请仅输出正则表达式本身,不加任何引号、不换行、不加说明文字、不包裹在代码块中。^(?u)d{11}:手机号;13→19开头;$
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让Claude输出的正则表达式提示词本身更短,但又不牺牲匹配精度和边界控制能力,避免因提示词过长导致上下文截断或模型注意力稀释。
删掉所有解释性从句
把“请生成一个能匹配中文手机号的正则表达式,要求支持13–19开头、11位纯数字”压缩为“匹配中文手机号:13–19开头、11位纯数字”。Claude对冒号后紧接的原子条件响应最稳定,加主语、谓语、目的状语反而干扰它提取关键约束。
【原始提示词中每多一个“要求”“必须”“确保”,Claude就多一次逻辑嵌套判断,最终可能漏掉^或$】
用符号替代文字描述
方法一:用→代替“然后”“接着”“再”
例如:“手机号段:13→19;长度:11;格式:纯数字” → Claude自动理解为并列必要条件,不会当成执行顺序。
方法二:用=绑定变量名与值
例如:“email_local = [a-z0-9._%+-]+;email_domain = [a-z0-9.-]+;tld = [a-z]{2,}” → 它会直接拼出^[a-z0-9._%+-]+@[a-z0-9.-]+.[a-z]{2,}$,不加额外说明。
方法三:用/分隔多选条件
例如:“姓名:2/3/4个汉字” → 比“姓名长度为2位或3位或4位”少12个字符,且Claude识别准确率更高。
强制锚点与修饰符前置固化
第一步:在提示词最开头写死结构
“请仅输出正则表达式本身,不加任何引号、不换行、不加说明文字、不包裹在代码块中。^(?u)”
第二步:中间只放原子逻辑
例如:“[\u4e00-\u9fa5]{2,4}:姓名;\d{11}:手机号;(?=.*[a-z])(?=.*[A-Z]):含大小写字母”
第三步:结尾强制闭合
“$”必须作为提示词最后一字符出现,Claude会把它当作不可删除的终止信号,而非可选内容。
这一步操作起来很简单,直接把“^(?u)”粘贴到提示词开头、“$”粘贴到末尾就行。漏掉任一端,Claude大概率输出无边界的片段式正则,无法用于re.fullmatch()校验。











