2016-02-25 86 views
1

這是我以.php代碼:PHP使preg_split()新行的逗號冒號和空格

$new_split = preg_split("/\s*[:, ]\s*/",$full_list,2); 
print_r ($new_split); 

輸入($ full_list)是:

abcd : xyz 
abcd efgh, ijk ,lmn 
abcd lmnop 
abcd: efghijk 
abcd,efgh 

輸出是:

Array ( 
    [0] => abcd 
    [1] => xyz abcd efgh, ijk ,lmn abcd lmnop abcd: efghijk abcd,efgh * 
) 

我想分割基於新行逗號(,)冒號(:)和空格。請讓我知道如何獲得下面的輸出。

預期成果是:

Array ( 
    [0] => abcd 
    [1] => xyz 
    [2] => abcd 
    [3] => efgh 
    [4] => ijk 
    [5] => lmn 
    [6] => abcd 
    [7] => lmnop 
    [8] => abcd 
    [9] => efghijk 
    [10] => abcd 
    [11] =>efgh 
) 
+1

您的preg_split命令中的2是LIMIT參數。你將它限制爲兩個結果。徹底刪除2以獲得全部。 – kainaw

+0

這是輸出: Array([0] => abcd [1] => xyz abcd [2] => efgh [3] => ijk [4] => lmn abcd [5] => lmnop abcd [6 ] => efghijk abcd [7] => efgh) $ new_split = preg_split(「/ \ s * [:,] \ s * /」,$ full_list); – Maddy

回答

2

刪除字符周圍的類\s*\s字符類中改變單一的空間,還可以添加一個量詞(即,針對1個或更多的+):

$new_split = preg_split("/[:,\s]+/",$full_list,2); 
print_r ($new_split); 
1

添加\s這樣的括號內:$new_split = preg_split("/\s*[:,\s]\s*/",$full_list);

+0

太棒了!它工作...謝謝:) Array([0] => abcd [1] => xyz [2] => abcd [3] => efgh [4] => ijk [5] => lmn [ 6] => abcd [7] => lmnop [8] => abcd [9] => efghijk [10] => abcd [11] => efgh) – Maddy