提问者:小点点

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


我有一个类似“汽车版XXXX”的字符串。

我想删除所有后“版本”,但保留这第一部分。 决赛应该是“汽车版”

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

$version = "Car version 15282";

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

echo $version;

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

如何在PHP中实现这一点?


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