2012-01-10 74 views
6

我有如下因素结构的字符串:获取分隔符前的第一个字符串?

7_string_12 
7_string2_122 
7_string3_1223 

我怎么能前第二获得串“_”?

我希望我的最终结果是:

7_string 
7_string2 
7_string3 

我使用爆炸(“_”,$字符串),并结合前两个值,但我的剧本很慢!

回答

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

呼应

7_string 

不管什么在字符串

+0

谢谢!我还有一个问题!如何让此代码向我显示以下结果:string?这是为了显示分隔符之间的字符串。提前致谢 ! – dido 2012-01-11 11:33:14

+0

@dilyan_kn'preg_match('/ _(\ S +)_ /',$ str,$ m); echo $ m [1];' – k102 2012-01-11 11:38:15

+0

请注意,如果输入不像'7_string2_abc_123',substr($ str,0,strrpos($ str,'_'))'可以。因为输出将是'7_string2_abc'。 – yasouser 2014-01-02 18:28:26

0

的开头。如果它总是与7_开始你可以试试这个:

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

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

1
$s1 = '7_string_12'; 
echo substr($s1, 0, strpos($s1, '_', 2)); 
+0

第一个标记总是一个字符的假设有点危险。 – 2012-10-14 08:07:27

相关问题