如何在字符串中找到字符的最后一次出现并获取之前的所有内容?

时间:2014-06-06 17:16:58

标签: php replace substring

现在,我正在做:

$lastpart = strrchr( $string, '-');
$firstpart = str_replace($lastpart, '', $string);

$array = explode('-',$string);
array_pop($array);
$firstpart = implode('-',$array);

但似乎必须有一个本机功能同时完成所有这些。是否有一个函数可以找到字符串的最后一次出现并返回它之前的所有内容?

只是为了澄清,这些解决方案运行正常,但我正在寻找原生功能。

2 个答案:

答案 0 :(得分:1)

您可以使用http://www.php.net/manual/en/function.strrpos.php

$newString = substr($oldString, 0, strrpos($oldString, $character));

答案 1 :(得分:1)

您可以使用正则表达式:

a视为您要查找的字符串:

$string = preg_replace('/(.*)a([^a])*$/', '\\1', 'asdfabcd');

此处的$ string将导致asdf

参考:php.net/preg_replace