2009-11-24 44 views
113

如何通過一個或多個空格或製表符來分解字符串?由一個或多個空格或製表符分解字符串

實施例:

A  B  C  D 

我想使這個陣列。的

+0

零個或多個空格意味着,要麼每個元素最多有一個字符,或者說你有無限多的空元素。你確定這是你想要的嗎? – bdonlan

+0

是的,這應該是「一個或多個空間」。 –

回答

261
$parts = preg_split('/\s+/', $str); 
+1

$ parts的最後一個元素將是空的..所以刪除它array_pop($ parts); – user889030

+1

@lucsan的答案必須是最好的答案(https:// stackoverflow。com/a/38481324/1407491) –

19

這工作:

$string = 'A B C   D'; 
$arr = preg_split('/[\s]+/', $string); 
8

我想你想要preg_split

$input = "A B C D"; 
$words = preg_split('/\s+/', $input); 
var_dump($words); 
-5

@OP沒關係,你可以在爆炸的空間分裂。在你想使用這些值之前,迭代分解值並放棄空白。

$str = "A  B  C  D"; 
$s = explode(" ",$str); 
foreach ($s as $a=>$b){  
    if (trim($b)) { 
    print "using $b\n"; 
    } 
} 
+4

標籤分隔值呢? – dotancohen

+0

製表符分隔的值不會爆炸,所以呃。 – NekojiruSou

41

要由製表符分隔:

$comp = preg_split("/[\t]/", $var); 

爲了通過空間/選項卡/換行符分離:

$comp = preg_split('/\s+/', $var); 

,用空格單獨單獨:

$comp = preg_split('/ +/', $var);

9

筆者詢問爆炸,你可以使用爆炸這樣

$resultArray = explode("\t", $inputString);

注意:您必須使用雙引號,而不是單個。

+0

爲我工作,比使用正則表達式的黑暗力量更簡單。 – ddtpoison777

-2
Explode string by one or more spaces or tabs in php example as follow: 

    <?php 
     $str = "test1 test2 test3  test4"; 
     $result = preg_split('/[\s]+/', $str); 
     var_dump($result); 
    ?> 

    /** To seperate by spaces alone: **/ 
    <?php 
     $string = "p q r s t"; 
     $res = preg_split('/ +/', $string); 
     var_dump($res); 
    ?> 

相關問題