按一个或多个空格和新行分解字符串

时间:2015-05-23 13:52:11

标签: php regex explode

如何通过一个或多个空格或制表符爆炸字符串?

示例:

A      B      C 
D      E      F
G      H      I
J      K      L
M      N      O

我已成功使用此代码对空格和标签进行标记:

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

但是当有新线时问题就会出现。

我想让它成为一个数组,这样我也可以运行mysqlquery。

1 个答案:

答案 0 :(得分:0)

如果你想得到一个字符矩阵,先用换行符分开:

<?php
$str = "A B\tC\nD E\tF";
$parts = preg_split("/\n+/", $str);
foreach($parts as $key => $line)
{
    $parts[$key] = preg_split("/\s+/", $line);
}

//output
$n = count($parts);
for ($i = 0; $i < $n; ++$i)
{
    $m = count($parts[$i]);
    for ($j = 0; $j < $m; ++$j)
    {
        print $parts[$i][$j]." ";
    }
    print "\n";
}

输出:

A B C 
D E F