删除特定字符串之后的所有内容,但保留第一个

我有一个像“汽车版本 XXXX”这样的字符串。


我想删除“版本”之后的所有内容,但保留第一部分。最后应该是“汽车版”


目前,我设法做到了这一点:


$version = "Car version 15282";


$version = substr($version, 0, strpos($version, "version"));


echo $version;

但它也删除了字符串“version”,我需要保留它。在网络上,我只看到在包括最后一个字符之后删除的示例。


如何在 PHP 中实现这一点?


沧海一幻觉
浏览 124回答 2
2回答

森栏

您需要添加要搜索的字符串的长度,因为它strlen()为您提供了字符串开始位置的索引version。$version = "Car version 15282";$version = substr($version, 0, strpos($version, "version")+strlen("version"));echo $version;给出结果Car version

汪汪一只猫

既然你知道你在寻找什么,你只需要一个功能:$version = "Car version 15282";$find = "version";$version = strstr($version, $find, true) . $find;如果它可能变得更复杂,请匹配并捕获()所有内容,包括您想要查找的内容.*,$find并将其以及之后的所有内容替换.*为您捕获的内容$1:$version = preg_replace("/(.*$find).*/", "$1", $version);
打开App,查看更多内容
随时随地看视频慕课网APP