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