我一直遇到str_replace函数的问题,如果我尝试替换单词'quote',它也会替换'quoted'这个词的匹配部分,这是不合需要的。
有什么建议吗?
我正在使用词汇表文件来获取单词并将其传递给数组。 然后打开一个html文件,我需要用词汇表单词调制..
答案 0 :(得分:3)
您可以将preg_replace
与带有字边界的正则表达式一起使用:
$output = preg_replace('/\b'.preg_quote($word, '/').'\b/', 'replacement', $str);
这里\b
是字边界断言。因此$word
的值仅在$str
中出现前后字边界时才会被替换。
答案 1 :(得分:0)
您将能够更加具体地使用preg_replace:
答案 2 :(得分:0)
如果需要更新上下文,则需要使用preg_replace()
的replace()的正则表达式版本。
echo str_replace("quote", "NEWSTRING", $src_text); echo preg_replace("/quote\b/", "NEWSTRING", $src_text);