×
¥
查看详情
🔥 会员专享 文生文 开发

PHP正则表达式生成器

👁️ 67 次查看
📅 Dec 10, 2025
💡 核心价值: 本提示词专为PHP开发场景设计,能够根据用户指定的数据类型生成精准的正则表达式验证模式。通过系统化的需求分析和多维度验证,确保生成的正则表达式具备高准确性和实用性。提示词采用分步工作流程,从需求理解到模式构建,再到测试验证,全面覆盖正则表达式开发的关键环节,帮助开发者快速获得可靠的数据验证解决方案。

🎯 可自定义参数(3个)

数据类型
需要验证的数据类型
验证强度
验证的严格程度
特殊要求
特殊的格式要求或限制条件

🎨 效果示例

正则表达式模式

$pattern = '/^(?:(?:\+86|0086)[ -]*)?1[3-9](?:[ -]?\d){9}$/';

模式说明

  • ^ 和 $:整串匹配,避免局部命中。
  • (?:(?:+86|0086)[ -]*)?:
    • 可选的国家码前缀,只允许“+86”或“0086”两种形式;
    • 前缀后允许有任意数量的空格或短横作为分隔。
  • 1[3-9]:
    • 国内手机号主体以“1”开头,第二位限定为 3-9,符合“号段限定13-19开头”的要求。
  • (?:[ -]?\d){9}:
    • 后续共 9 个数字,每个数字前允许有 0 或 1 个空格/短横分隔符;
    • 连同前面的“1[3-9]”,主体共计 11 位数字。

该模式确保:

  • 主体数字总计严格为 11 位(不包含国家码前缀与分隔符)。
  • 可选国家码仅限 +86 或 0086。
  • 允许在国家码与主体之间、以及主体数字之间使用空格或短横作为分隔。
  • 不允许其它字符或多余位数。

使用示例

function isValidCnMobile(string $input): bool {
    $pattern = '/^(?:(?:\+86|0086)[ -]*)?1[3-9](?:[ -]?\d){9}$/';
    return (bool)preg_match($pattern, $input);
}

// 示例
$tests = [
    '13800138000',
    '+8613800138000',
    '+86 138 0013 8000',
    '+86-138-0013-8000',
    '0086 178 1234 5678',
    '0086-13-800138000',
    '8613800138000',      // 无效:缺少 + 或 00 的前缀形式
    '12800138000',        // 无效:第二位不是 3-9
    '1380013800',         // 无效:不足 11 位
    '138001380001',       // 无效:超过 11 位
    '+86 -- 13800138000', // 有效:前缀后允许多个分隔符
];

foreach ($tests as $s) {
    printf("%-20s => %s\n", $s, isValidCnMobile($s) ? 'valid' : 'invalid');
}

测试用例

  • 期望匹配(valid)

    • 13800138000
    • +8613800138000
    • +86 138 0013 8000
    • +86-138-0013-8000
    • 0086 178 1234 5678
    • 0086-13-800138000
    • +86--13800138000
  • 期望不匹配(invalid)

    • 8613800138000(未使用 +86/0086,仅“86”不被允许)
    • 12800138000(号段不在 13-19)
    • 1380013800(不足 11 位)
    • 138001380001(超过 11 位)
    • +85 13800138000(错误国家码)
    • +86 11800138000(第二位为 1,非法)
    • +86_13800138000(使用了非法分隔符“_”)

注意事项

  • 分隔符仅允许空格或 ASCII 短横号(-)。不支持制表符、全角空格、长破折号等其它字符。
  • 若需要容忍多于一个连续分隔符出现在主体数字之间,可将主体部分中的 [ -]? 改为 [ -]*,但建议保持 [ -]? 以降低回溯并避免输入中出现过多分隔符造成的混乱。
  • 若可能存在首尾空白,建议先对输入进行 trim() 后再验证。
  • 本模式使用基础 PCRE 语法,兼容常见 PHP 版本;未使用多行/Unicode 特性,无需额外修饰符。
  • 如果需要进一步严格到具体运营商号段,请在 1[3-9] 处替换为更精细的子模式,但要兼顾新号段的持续扩展,避免过度收紧导致误拒。

正则表达式模式

$pattern = '/^(?!.*(?i:password))(?!.*(.)\1\1)(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[!@#$%^&*])[A-Za-z\d!@#$%^&*]{12,}$/';

模式说明

  • ^ 和 $:严格从字符串起始到结束匹配,防止前后多余字符。
  • (?!.*(?i:password)):
    • 负向前瞻,禁止出现子串“password”(大小写不敏感,仅该子模式内启用 i 标志,不影响整体大小写要求)。
  • (?!.*(.)\1\1):
    • 负向前瞻,禁止任意三个相同字符的连续出现(如 aaa、111、@@@ 等),区分大小写。
  • (?=.*[A-Z]):至少一个大写字母。
  • (?=.*[a-z]):至少一个小写字母。
  • (?=.*\d):至少一个数字。
  • (?=.[!@#$%^&]):至少一个特殊字符,限定在集合 ! @ # $ % ^ & * 之内。
  • [A-Za-z\d!@#$%^&*]{12,}:
    • 仅允许大小写字母、数字与上述8种特殊字符;
    • 长度至少 12;
    • 自然排除了空白字符与其他未列出的符号(从而满足“禁止空白”与“仅允许指定特殊字符”)。

该模式使用的是 PCRE,适用于 PHP 7.x 与 8.x 的 preg 系列函数。

使用示例

<?php
$pattern = '/^(?!.*(?i:password))(?!.*(.)\1\1)(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[!@#$%^&*])[A-Za-z\d!@#$%^&*]{12,}$/';

$inputs = [
    'Aa1!Aa1!Bb2@',     // 合规
    'Abcdef1!Ghij',     // 合规
    'Mx8@tY7!abcD',     // 合规
    'N0$RepeatGood!',   // 合规
    'short1!Aabc',      // 不合规:长度不足
    'NoSpecialChar12',  // 不合规:缺少指定特殊字符
    'nosupper1!abcdefgh', // 不合规:缺少大写字母
    'NOSLOWER1!ABCDEF', // 不合规:缺少小写字母
    'PassWord123!',     // 不合规:包含“password”(大小写不敏感)
    'AAAa1!aaaaaa',     // 不合规:存在连续3个相同字符“AAA”
    'abcABC123!!!',     // 不合规:存在连续3个相同字符“!!!”
    'GoodPwd1?Abcdef',  // 不合规:包含未允许的特殊字符“?”
    "Has space1!A",     // 不合规:包含空格(未允许)
];

foreach ($inputs as $pwd) {
    $ok = preg_match($pattern, $pwd) === 1;
    printf("%-20s => %s\n", $pwd, $ok ? 'VALID' : 'INVALID');
}

测试用例

  • 期望匹配成功:
    • Aa1!Aa1!Bb2@
    • Abcdef1!Ghij
    • Mx8@tY7!abcD
    • N0$RepeatGood!
  • 期望匹配失败(原因示例):
    • short1!Aabc(长度不足)
    • NoSpecialChar12(缺少特殊字符)
    • nosupper1!abcdefgh(缺少大写字母)
    • NOSLOWER1!ABCDEF(缺少小写字母)
    • PassWord123!(包含“password”,大小写不敏感)
    • AAAa1!aaaaaa(连续3个相同字符)
    • abcABC123!!!(连续3个相同字符)
    • GoodPwd1?Abcdef(含未允许的“?”)
    • Has space1!A(包含空白)

注意事项

  • 特殊字符白名单:仅允许使用 ! @ # $ % ^ & 。如需扩展,请将新增字符加入字符类 [!@#$%^&] 与末尾的允许集合中,并正确转义-, ^, ] 等在字符类内有特殊意义的字符。
  • 大小写判定为 ASCII 范围。如果需要支持非 ASCII 的大小写字母(如带重音的拉丁字母),需考虑使用 Unicode 属性类并加上 u 修饰符,同时调整大小写检测逻辑(例如使用 \p{Lu}、\p{Ll}),但这超出了当前需求。
  • “不得含 password”采用大小写不敏感匹配,仅针对字面子串 password(不含变体如 passw0rd)。
  • 性能说明:该模式为线性复杂度的多前瞻组合,已锚定并限制字符集合,避免了灾难性回溯。适用于常规表单验证场景。
  • 在高并发环境中,建议先用 strlen() 做基本长度检查再调用正则,可微幅减少正则调用开销(可选优化)。

示例详情

📖 如何使用

30秒出活:复制 → 粘贴 → 搞定
与其花几十分钟和AI聊天、试错,不如直接复制这些经过千人验证的模板,修改几个 {{变量}} 就能立刻获得专业级输出。省下来的时间,足够你轻松享受两杯咖啡!
加载中...
💬 不会填参数?让 AI 反过来问你
不确定变量该填什么?一键转为对话模式,AI 会像资深顾问一样逐步引导你,问几个问题就能自动生成完美匹配你需求的定制结果。零门槛,开口就行。
转为对话模式
🚀 告别复制粘贴,Chat 里直接调用
无需切换,输入 / 唤醒 8000+ 专家级提示词。 插件将全站提示词库深度集成于 Chat 输入框。基于当前对话语境,系统智能推荐最契合的 Prompt 并自动完成参数化,让海量资源触手可及,从此彻底告别"手动搬运"。
即将推出
🔌 接口一调,提示词自己会进化
手动跑一次还行,跑一百次呢?通过 API 接口动态注入变量,接入批量评价引擎,让程序自动迭代出更高质量的提示词方案。Prompt 会自己进化,你只管收结果。
发布 API
🤖 一键变成你的专属 Agent 应用
不想每次都配参数?把这条提示词直接发布成独立 Agent,内嵌图片生成、参数优化等工具,分享链接就能用。给团队或客户一个"开箱即用"的完整方案。
创建 Agent

✅ 特性总结

按数据类型一键生成可用正则校验,直接贴入PHP表单与服务端提交即可上线
自动识别边界与特殊字符场景,减少误判与漏判,降低回收修改成本
内置多级验证强度选项,从宽松到严格自由切换,满足注册、导入等多场景
生成同时给出使用示例与测试样例,新手亦可照抄运行,快速验证真伪
根据项目版本与执行环境自动优化写法,兼顾性能与兼容,减少线上意外
支持自定义特殊规则与例外清单,告别千篇一律,贴合你的业务口径
多维度校验报告即时呈现,指出风险点与改进建议,避免隐性安全漏洞
流程化工作方式,从需求到上线一步到位,团队协作与交付更可控更高效

🎯 解决的问题

把复杂的正则设计化繁为简,让AI以“PHP数据校验顾问”的身份,基于你的业务字段与规则,在一次对话内交付:高准确度的正则表达式、可直接粘贴的PHP示例代码、覆盖边界的测试用例与清晰的使用说明。帮助你在5分钟内从需求到可用校验方案,兼顾性能与安全,统一团队校验标准,减少返工与线上故障,适用于注册登录、表单提交、批量导入、数据采集、接口入参校验等高频场景。

🕒 版本历史

当前版本
v2.1 2024-01-15
优化输出结构,增强情节连贯性
  • ✨ 新增章节节奏控制参数
  • 🔧 优化人物关系描述逻辑
  • 📝 改进主题深化引导语
  • 🎯 增强情节转折点设计
v2.0 2023-12-20
重构提示词架构,提升生成质量
  • 🚀 全新的提示词结构设计
  • 📊 增加输出格式化选项
  • 💡 优化角色塑造引导
v1.5 2023-11-10
修复已知问题,提升稳定性
  • 🐛 修复长文本处理bug
  • ⚡ 提升响应速度
v1.0 2023-10-01
首次发布
  • 🎉 初始版本上线
COMING SOON
版本历史追踪,即将启航
记录每一次提示词的进化与升级,敬请期待。

💬 用户评价

4.8
⭐⭐⭐⭐⭐
基于 28 条评价
5星
85%
4星
12%
3星
3%
👤
电商运营 - 张先生
⭐⭐⭐⭐⭐ 2025-01-15
双十一用这个提示词生成了20多张海报,效果非常好!点击率提升了35%,节省了大量设计时间。参数调整很灵活,能快速适配不同节日。
效果好 节省时间
👤
品牌设计师 - 李女士
⭐⭐⭐⭐⭐ 2025-01-10
作为设计师,这个提示词帮我快速生成创意方向,大大提升了工作效率。生成的海报氛围感很强,稍作调整就能直接使用。
创意好 专业
COMING SOON
用户评价与反馈系统,即将上线
倾听真实反馈,在这里留下您的使用心得,敬请期待。
加载中...