我想知道在 php 中查找和替换单词的最佳方法,具体取决于大写和小写。
我实际上有:
$chain = "My long chain";
$keyword = "My";
str_replace($keyword, "<span class='highlight1'>".$keyword."</span>", $chain);
它适用于My
但不适用于my
or MY
。
请问该怎么做?
谢谢。
我想知道在 php 中查找和替换单词的最佳方法,具体取决于大写和小写。
我实际上有:
$chain = "My long chain";
$keyword = "My";
str_replace($keyword, "<span class='highlight1'>".$keyword."</span>", $chain);
它适用于My
但不适用于my
or MY
。
请问该怎么做?
谢谢。
如果您只想规范某个单词/表达式的所有形式,请使用str_ireplace进行不区分大小写的替换。实际上,PHP 中的许多字符串函数都有不区分大小写的兄弟姐妹 -i
在它们的名称中添加到“动作部分”之前。
如果要保留原始大小写,请使用preg_replace和不区分大小写修饰符:
$pattern = preg_quote($keyword);
$result = preg_replace("/($pattern)/i",
'<span class="highlight">$1</span>', $chain);
演示(我已替换class
为style
更清晰的演示)。请注意,即使$1
此处的 expr 在单引号文字中,它仍然是插值的。