如果包含关键字,该如何编写整个单词的脚本? 示例: 关键字“ fun”,字符串-鸟很有趣,结果-鸟很有趣*。我做以下
$str = "my bird is funny"; $keyword = "fun"; $str = preg_replace("/($keyword)/i","<b>$1</b>",$str);
但它只是修饰词。我的鸟是 乐趣 纽约
尝试这个:
preg_replace("/\w*?$keyword\w*/i", "<b>$0</b>", $str)
\w*?匹配关键字前面的任何单词字符(至少)和\w*关键字后面的任何单词字符。
\w*?
\w*
并且我建议您使用preg_quote转义关键字:
preg_quote
preg_replace("/\w*?".preg_quote($keyword)."\w*/i", "<b>$0</b>", $str)
为了支持Unicode,请使用 u 标志,\p{L}而不要使用\w:
\p{L}
\w
preg_replace("/\p{L}*?".preg_quote($keyword)."\p{L}*/ui", "<b>$0</b>", $str)