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

时间:2020-06-24 14:22:30

标签: php

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

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

目前,我设法做到了:

$version = "Car version 15282";

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

echo $version;

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

如何在PHP中实现此目标?

2 个答案:

答案 0 :(得分:2)

您需要增加搜索字符串的长度,因为strlen()为您提供了字符串version的起始位置的索引。

$version = "Car version 15282";

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

echo $version;

给出结果

Car version

答案 1 :(得分:2)

因为您知道要查找的内容,所以只需要一个功能:

$version = "Car version 15282";
$find = "version";
$version = strstr($version, $find, true) . $find;

如果它变得更复杂,则匹配并捕获()直至您想要找到的所有内容.*$find,并将其替换为.*之后的所有内容与您捕获的$1

$version = preg_replace("/(.*$find).*/", "$1", $version);