如果在语句的最后找到,则替换该单词

时间:2016-08-11 06:30:47

标签: php preg-replace preg-match

标题:新比利时萨克拉门托剪辑啤酒和萨克拉门托电影之旅萨克拉门托

字:萨克拉门托

我想要的是从声明中的最后一个删除萨克拉门托词。第一和第二应该是原样。

标题和单词是动态的。它可能是任何东西。

2 个答案:

答案 0 :(得分:0)

如果要替换最后一个单词,可以使用否定前瞻。如果单词“Sacramento”不在初始字符串的末尾但您仍需要删除它的最后一个匹配项,这将起作用。

function removeLastOccurence($search, $subject)
{
    return preg_replace(
        "~ $search(?!.*$search)~",
        '',
        $subject
    );
}

但是如果您只需要从字符串的最末端删除它,您可以这样做:

function removeLast($search, $subject)
{
    return preg_replace(
        "~ $search$~",
        '',
        $subject
    );
}

答案 1 :(得分:0)

尝试使用(?!...)

 <?php
        $mystring="New Belgium Sacramento Clips Beer and Sacramento Film Tour Sacramento";

         echo preg_replace('~Sacramento(?!.*Sacramento)~','',  $mystring),"\n";

        ?>
    //New Belgium Sacramento Clips Beer and Sacramento Film Tour