0

我想在最后一次出现“-”之前获取字符串的一部分,

例如,

$string1 = 'a-b-c-de-f-gfgh';

我想让这部分返回:abc-de-f。当然,我不知道最后一部分的长度。

什么是简单的方法?

谢谢

4

5 回答 5

7
echo substr ($string1, 0, strrpos ($string1, '-'));

strrpos() 查找子字符串的最后一次出现,在这种情况下为 -,并且 substr() 将原始字符串从第 0 个字符拆分到 strrpos() 定义的第 n 个字符

于 2012-05-11T22:11:29.740 回答
1

获取最后一次-使用$x = strrpos($string1,'-'); 然后使用substr()返回从 0 到 $x 的指定字符串

 echo substr ($string1, 0, $x);
于 2012-05-11T22:22:11.947 回答
1

使用strrpos()获取最后一个 "-" 的位置并使用substr()它:

echo substr($string1, 0, strrpos($string1, "-"));
于 2012-05-11T22:13:31.247 回答
0

您可以删除最后一部分:

$string = preg_replace("|-[^-]+$|", "", $string);
于 2012-05-11T22:14:46.593 回答
0

作为其他海报的替代品:

preg_match('/(.*)-[^-]+/', 'a-b-c-de-f-gfgh', $result);

结果:

Array
(
    [0] => a-b-c-de-f-gfgh-a
    [1] => a-b-c-de-f-gfgh
)

虽然我更喜欢 Jeroens 解决方案。

于 2012-05-11T22:14:27.520 回答