Php 在分隔符之前获取第一个字符串?

Php 在分隔符之前获取第一个字符串?,php,string,explode,separator,Php,String,Explode,Separator,我有以下结构的字符串: 7_string_12 7_string2_122 7_string3_1223 如何在第二个“\”之前获取字符串 我希望我的最终结果是: 7_string 7_string2 7_string3 我正在使用explode(“”,$string)并组合前两个值,但我的脚本非常慢 $str = '7_string_12'; echo substr($str,0,strrpos($str,'_')); 回声 7_string 无论字符串的开头是什么如果总是以7开头,您

我有以下结构的字符串:

7_string_12
7_string2_122
7_string3_1223
如何在第二个“\”之前获取字符串

我希望我的最终结果是:

7_string
7_string2
7_string3
我正在使用explode(“”,$string)并组合前两个值,但我的脚本非常慢

$str = '7_string_12';
echo substr($str,0,strrpos($str,'_'));
回声

7_string

无论字符串的开头是什么

如果总是以7开头,您可以尝试以下方法:

$string = substr($text, 0, strpos($text, '_', 2));

strpos()搜索从字符3(=s from string)开始的第一个字符。然后使用substr()选择从第一个字符到strps()返回的字符的整个字符串。

谢谢!我还有一个问题!如何使此代码显示以下结果:string?即显示分隔符之间的字符串。提前谢谢@dilyan_kn
preg_match('/_(\S+))、$str、$m);echo$m[1]请注意,
substr($str,0,strrpos($str,'')
如果输入不象
7\u string2\u abc\u 123
,则可以。因为输出将是
7\u string2\u abc
。假设第一个标记总是一个字符长有点危险。
$s1 = '7_string_12';
echo substr($s1, 0, strpos($s1, '_', 2));