0

我的 str_replace 函数一直有问题,如果我尝试替换单词“quote”,它也会替换单词“quoted”的匹配部分,这是不需要的。

有什么建议么 ?

我正在使用词汇表文件从中获取单词并将其传递给数组..然后打开一个我需要用词汇表单词调制的html文件..

4

3 回答 3

3

您可以使用preg_replace考虑单词边界的正则表达式:

$output = preg_replace('/\b'.preg_quote($word, '/').'\b/', 'replacement', $str);

\b是词边界断言。因此,$word仅当 if 出现在$str它之前和之后的单词边界时才会替换值。

于 2010-11-05T18:07:56.763 回答
0

您将能够更具体地使用 preg_replace:

http://php.net/manual/en/function.preg-replace.php

于 2010-11-05T18:07:18.113 回答
0

如果您需要上下文相关替换,则需要使用正则表达式版本的 replace(),即preg_replace().

echo str_replace("quote", "NEWSTRING", $src_text);

echo preg_replace("/quote\b/", "NEWSTRING", $src_text);
于 2010-11-05T18:18:10.337 回答