仅查找并替换完整的术语 PHP preg_replace



我正在尝试搜索并替换为字符串, 我有 2 个问题 1. 我需要检查术语是否在标签"术语"内 - 在这种情况下什么都不做。 2.我需要确保我正在替换一个完整的单词而不是删除这个词:

function str_replace_first($from, $to, $content)
{
$from = '/'.preg_quote($from, '/').'/';
return preg_replace($from, $to, $content, 1);
}

例:

echo str_replace_first('good','bad','goodmorning'); 

结果:糟糕的早晨//如果我们要剪切一个单词,我需要脚本不替换,如果我们要更改整个单词,则需要替换 谢谢

如果我们

要剪切一个单词,我需要脚本不替换,如果我们要更改整个单词,则需要替换

幸运的是,正则表达式语法以b字边界标记的形式具有您所需要的内容。只需将其添加到要匹配的单词的任一末尾,如下所示:

function str_replace_first($from, $to, $content)
{
$from = '/b'.preg_quote($from, '/').'b/';
return preg_replace($from, $to, $content, 1);
}

现在,goodmorning中的"好"不会被取代,但good morning会被取代。

相关内容

最新更新