2012-01-10 73 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

相關問題