You need to enable JavaScript to run this app. 如何在preg_match中动态调用逗号分隔值生成正则匹配规则
优惠活动
大模型
产品
解决方案
定价
更多

如何在preg_match中动态调用逗号分隔值生成正则匹配规则

实现方案
  • 首先拆分逗号分隔的$values字符串为数组,对每个元素做正则特殊字符转义,避免正则注入风险
  • 再把数组元素用|拼接为或逻辑规则,传入正则表达式即可

完整代码实现

$values = 'apple,orange,banana,mango';

public static function likecheck( $data, $values ) {
    // 拆分字符串并对每个关键词做正则转义
    $matchItems = array_map('preg_quote', explode(',', $values));
    // 拼接生成完整正则,i标识对应原需求的不区分大小写匹配
    $pattern = '/(' . implode('|', $matchItems) . ')/i';
    return preg_match($pattern, $data) === 1;
}

特殊场景适配

如果需要和你原硬编码的逻辑一致,要求匹配的关键词前后必须带空格,可修改转义逻辑:

$matchItems = array_map(function($item){
    return ' ' . preg_quote($item) . ' ';
}, explode(',', $values));

生成的正则就和原逻辑的( apple | orange | banana | mango )结构完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 14:18:02