正则表达式preg_split由新行

mic*_*ele 9 php regex preg-split

这是我的档案:

0.0 5.0 5.0 6.0 7.0 2.0 5.0 2.0 1.0 5.0 5.0 1.0 2.0 7.1 5.0
5.0 0.0 5.0 5.0 5.0 2.0 5.0 1.0 5.0 6.0 6.0 6.0 6.0 1.0 7.1
5.0 5.0 0.0 6.0 1.0 6.0 5.0 5.0 1.0 6.0 5.0 7.0 1.0 5.0 6.0
6.0 5.0 6.0 0.0 5.0 2.0 1.0 6.0 5.0 6.0 2.0 1.0 2.0 1.0 5.0
7.0 5.0 1.0 5.0 0.0 7.0 1.0 1.0 2.0 1.0 5.0 6.0 2.0 2.0 5.0
2.0 2.0 6.0 2.0 7.0 0.0 5.0 5.0 6.0 5.0 2.0 5.0 1.0 2.0 5.0
5.0 5.0 5.0 1.0 1.0 5.0 0.0 2.0 6.0 1.0 5.0 7.0 5.0 1.0 6.0
7.0 1.0 5.0 1.0 2.0 2.0 1.0 5.0 6.0 5.0 2.0 6.0 7.0 0.0 5.0
5.0 7.0 6.0 5.0 5.0 5.0 6.0 2.0 6.0 2.0 1.0 5.0 6.0 5.0 0.0
Run Code Online (Sandbox Code Playgroud)

我会将它拆分为\n并且每行返回一个数组.我该怎么做正则表达式?

$rows = preg_split('$regular_expression', $content);
Run Code Online (Sandbox Code Playgroud)

在我将提取所有行之后,如何提取由退格分隔的每个值?

$values_in_a_row = preg_split('$regular_expression', $a_row);
Run Code Online (Sandbox Code Playgroud)

这里的文字是我试图做的http://regexr.com?2v23c.非常感谢.

Bry*_*yan 31

如果您遇到问题,因为您不知道每个换行是否正好\n,\r\n或者\r上述答案都不起作用且正则表达式有效.我做的是

$lines = preg_split("/(\r\n|\n|\r)/",$content);
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用接受的答案来分割空格.

  • `$ lines = preg_split('〜\ R~',$ content);` (2认同)

Mic*_*ker 6

$rowsapart = preg_split("/\n/",$rowstogether);

$colspart = preg_split("/\s/",$colstogether);
Run Code Online (Sandbox Code Playgroud)


Tom*_*Tom 6

不需要正则表达式:

<?php
    $data = explode("\n", $data); // preg_split('#\n#', $data); Please don't
    foreach($data as &$row) {
        $row = explode(' ', $row); // preg_split('#\s#', $row); Seriously
    }
    print_r($data);
?>

<test></test>
Run Code Online (Sandbox Code Playgroud)

  • 这不回答这个问题.并非所有字符串都使用`\n`表示换行符. (8认同)
  • 问题是,如果它没有使用\n换行符,该怎么办? (3认同)