鉴于以下简单函数(对于PHP页面),我试图匹配长文本字符串中单词$marker
的所有出现。我需要强调它的出现。
该功能有效,但它提出了两个问题:
1)它无法匹配$marker
2)它也匹配部分出现:如果$ marker是" art ",该函数也匹配" 艺术"和" 购物车"。
如何纠正这两个不便之处?
function highlightWords($string, $marker){
$string = str_replace($marker, "<span class='highlight success'>".$marker."</span>", $string);
return $string;
}
答案 0 :(得分:3)
要解决这两个问题,您可以将line 3与正则表达式一起使用。只需添加preg_replace()
以进行不区分大小写的搜索,并在搜索字词周围添加i
flag,这样就不能将其作为其他字词的一部分,例如。
{{1}}