2016-02-25 88 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