仅替换整个单词匹配

问题描述 投票:0回答:3

我在使用 str_replace 函数时遇到了问题,如果我尝试替换单词“quote”,它也会替换单词“quoted”的匹配部分,这是不需要的。

有什么建议吗?

我正在使用词汇表文件来获取单词并将其传递到一个数组中,然后打开一个我需要用词汇表单词进行调制的 html 文件。

php replace word-boundaries
3个回答
3
投票

您可以将

preg_replace
与考虑单词边界的正则表达式一起使用:

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

这里

\b
是词边界断言。因此,仅当 if 出现在
$word
中并且前后有单词边界时,
$str
的值才会被替换。


0
投票

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

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


0
投票

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

preg_replace()

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

echo preg_replace("/quote /", "NEWSTRING", $src_text);
© www.soinside.com 2019 - 2024. All rights reserved.