You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP正则验证字符串仅含合法字符且可选中间包含=>的问题

PHP数组项名称校验正则实现

最终符合要求的正则表达式

/^[a-zA-Z0-9_\-]+(?:=>[a-zA-Z0-9_\-]+)*$/

正则规则对应说明

  • 开头强制匹配1个及以上基础允许字符(大小写英文字母、数字、下划线、连字符),直接规避了=>开头的问题
  • 后续仅允许出现「=> + 1个及以上基础允许字符」的重复组合,既保证=>只能作为完整字符串出现、不会单独存在=或>,也保证了不会以=>结尾
  • 全程无额外冗余判断,执行效率更高

完整测试代码

<?php
$regex = '/^[a-zA-Z0-9_\-]+(?:=>[a-zA-Z0-9_\-]+)*$/';

// 覆盖所有场景的测试用例
$testList = [
    'Field_name_true2', // 合法 无=>
    'Field=>Value-True', // 合法 包含一次=>
    'Field=>Value=>Test', // 合法 包含多次=>
    '=>False_name', // 非法 以=>开头
    'Bad_name_2=>', // 非法 以=>结尾
    'Test=Single', // 非法 单独出现=
    'Test>Single' // 非法 单独出现>
];

foreach ($testList as $item) {
    $matchResult = preg_match($regex, $item) ? 'true' : 'false';
    echo "校验内容:{$item} → 校验结果:{$matchResult}\n";
}
?>

输出结果

校验内容:Field_name_true2 → 校验结果:true
校验内容:Field=>Value-True → 校验结果:true
校验内容:Field=>Value=>Test → 校验结果:true
校验内容:=>False_name → 校验结果:false
校验内容:Bad_name_2=> → 校验结果:false
校验内容:Test=Single → 校验结果:false
校验内容:Test>Single → 校验结果:false

内容的提问来源于stack exchange,提问作者Shane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 16:39:03