$value['keyword']='P|$$';<br>
$keyword = preg_quote($value['keyword'], '/');<br>
$question = "verying P|$$ quedon";<br>
echo $abc = preg_replace( "/\b($keyword)\b/i",'<span style="color:red">$1</span>',$question);<br>
我希望字符串的匹配关键字为红色
答案 0 :(得分:0)
$
之后的单词边界需要在其后面出现单词char,因此此处不会发生替换。
如果关键字前面或后面跟着单词字符,那么您需要使用(?<!\w)
和(?!\w)
外观定义的明确边界替换单词边界,这些边界会使匹配失败:
$value['keyword']='P|$$';
$keyword = preg_quote($value['keyword'], '/');
$question = "verying P|$$ quedon";
echo $abc = preg_replace( "/(?<!\w)($keyword)(?!\w)/i",'<span style="color:red">$1</span>',$question);
请参阅PHP demo