找到并替换完整的术语php preg_replace

时间:2018-05-10 12:16:13

标签: php

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

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'); 

结果:badmorning //如果我们要剪切一个单词,我需要不替换脚本,如果我们要更改整个单词则执行替换 感谢

1 个答案:

答案 0 :(得分:0)

  

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

幸运的是,正则表达式语法正好以\b词边界标记的形式提供所需的语法。只需将其添加到您要匹配的单词的任一端,如下所示:

function str_replace_first($from, $to, $content)
{
    $from = '/\b'.preg_quote($from, '/').'\b/';

    return preg_replace($from, $to, $content, 1);
}

现在,goodmorning中的“好”不会被替换,但good morning将会被替换。