我正在尝试替换逗号分隔列表中的名称。
但是,无法找出如何匹配不区分大小写的确切名称,如果不是完全匹配则无法捕获
这是我到目前为止所得到的。
$search = "My name is Christina and this is another example";
$AllNames = "Lola,Chris,Monic";
$search = str_ireplace(array_map("trim", explode(",", strtolower($AllNames))), '****', $search);
因此,在这种情况下,克里斯蒂娜(Christina)的名字将被标记为****,尽管我只是在寻找克里斯。任何想法我怎么能实现。
如果将以逗号分隔的列表分解为数组然后逐个列出每个项目,我发现了一些有关如何执行此操作的示例,但是也许有一个更简单的解决方案。
尝试\b
在值中使用单词边界以及/i
不敏感的修饰符,方法是preg_replace
:
$search = "My name is Christina and this is another example, my friends are Lola and Monica and Monic and Chris. As lowercase: lola, christina, monic, monica, chris.";
$AllNames = ["/Lola/i", "/Chris\b/i", "/Monic\b/i"];
$search = preg_replace($AllNames, '****', $search);
echo $search;
输出:
My name is Christina and this is another example, my friends are **** and Monica and **** and ****. As lowercase: ****, christina, ****, monica, ****.
请注意,我并未将边界词与一起使用Lola
,但可以根据需要轻松添加。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句