Php 如何找到字符串中最后出现的字符,并获取其之前的所有内容?

Php 如何找到字符串中最后出现的字符,并获取其之前的所有内容?,php,replace,substring,Php,Replace,Substring,目前,我正在做: $lastpart = strrchr( $string, '-'); $firstpart = str_replace($lastpart, '', $string); 或 但似乎必须有一个本机函数同时完成所有这一切。是否有一个函数可以找到字符串的最后一次出现并返回它之前的所有内容 澄清一下,这些解决方案工作得很好,但我正在寻找一个本机函数。您可以使用 您可以使用正则表达式: 将a视为您要查找的字符串: $string = preg_replace('/(.*)a([^a]

目前,我正在做:

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

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

澄清一下,这些解决方案工作得很好,但我正在寻找一个本机函数。

您可以使用


您可以使用正则表达式:

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

$string = preg_replace('/(.*)a([^a])*$/', '\\1', 'asdfabcd');
此处的$string将导致
asdf


ref:

您能显示您想要查找最后一部分的字符串吗?@Zerquix18,我想要一个可以处理任何字符串的本机php函数。只是澄清一下,没有本机函数用于此项。:)这并不能完全回答我的问题(对于本机函数),但这是一个比我一直使用的两个更好的解决方案。没有本机函数,只有最后一个字符的本机函数。这是非常典型的PHP字符串处理程序,让您可以灵活地将它们组合起来用于特定用途。我会给您检查,因为您是在一行中完成的,即使@Justin iurman在您使用相同的解决方案之前回答了20秒。
$newString = substr($oldString, 0, strrpos($oldString, $character));
$string = preg_replace('/(.*)a([^a])*$/', '\\1', 'asdfabcd');