You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何删除字符串中指定单词的最后一次出现

PHP删除字符串中指定单词最后一次出现的实现方法

核心思路

先定位目标内容最后一次出现的位置,再通过字符串拼接/替换完成删除,无需遍历所有匹配项,性能最优。

方法1:字符串函数实现(推荐,性能更高)

适合明确需要匹配连续字符、不需要严格校验独立单词的场景:

$string = 'bla test bla test bla test bla test bla';
$search = 'test';

// 查找最后一次出现的位置,大小写敏感;需要不敏感可替换为strripos
$lastPos = strrpos($string, $search);

if ($lastPos !== false) {
    // 从最后出现位置开始,替换长度为搜索词长度的内容为空
    $string = substr_replace($string, '', $lastPos, strlen($search));
    // 若要删除单词后连带的空格,可将上面的长度改为 strlen($search) + 1,避免最终出现多余空格
}

// 输出结果:bla test bla test bla test bla  bla
echo $string;

方法2:正则实现(适合需要匹配独立单词的场景)

如果要避免把test123、atest这类包含目标字符的内容误匹配,需要严格匹配独立单词时使用:

$string = 'bla test bla test bla test bla test bla';
$search = 'test';

// \b为单词边界,?!为负向预查,确保后面没有相同的单词出现
$pattern = '#\b' . preg_quote($search, '#') . '\b(?![\s\S]*\b' . preg_quote($search, '#') . '\b)#';
// 不区分大小写可以加i修饰符,即 $pattern = '#...#i';
// 要连带删除单词后多余空格,可在匹配词后加\s?:$pattern = '#\b'...'\b\s?(?![...#';

$string = preg_replace($pattern, '', $string);

// 输出结果:bla test bla test bla test bla  bla
echo $string;

内容的提问来源于stack exchange,提问作者tevved

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 10:27:03