我想在最后一次出现"-"之前获取字符串的一部分,
例如
$string1 = 'a-b-c-de-f-gfgh';
我想返回这部分:a-b-c-de-f。当然,我不知道最后一部分的长度。
有什么简单的方法可以做到这一点?
谢谢
echo substr ($string1, 0, strrpos ($string1, '-'));
strrpos() 查找子字符串的最后一个匹配项 - 在本例中,substr() 将原始字符串从第 0 个字符拆分到由 strrpos() 定义的第 n 个字符
使用 strrpos() 获取最后一个 "-" 的位置并 substr() 它:
echo substr($string1, 0, strrpos($string1, "-"));
使用 $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
)
虽然我更喜欢杰罗恩斯的解决方案。