我想在最后一次出现“-”之前获取字符串的一部分,
例如,
$string1 = 'a-b-c-de-f-gfgh';
我想让这部分返回:abc-de-f。当然,我不知道最后一部分的长度。
什么是简单的方法?
谢谢
我想在最后一次出现“-”之前获取字符串的一部分,
例如,
$string1 = 'a-b-c-de-f-gfgh';
我想让这部分返回:abc-de-f。当然,我不知道最后一部分的长度。
什么是简单的方法?
谢谢
echo substr ($string1, 0, strrpos ($string1, '-'));
strrpos() 查找子字符串的最后一次出现,在这种情况下为 -,并且 substr() 将原始字符串从第 0 个字符拆分到 strrpos() 定义的第 n 个字符
获取最后一次-
使用$x = strrpos($string1,'-');
然后使用substr()
返回从 0 到 $x 的指定字符串
echo substr ($string1, 0, $x);
您可以删除最后一部分:
$string = preg_replace("|-[^-]+$|", "", $string);
作为其他海报的替代品:
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 解决方案。