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