根据段落将文本分解为数组

Dee*_*123 2 php arrays explode

我有以下文字:

$test = 'Test This is first line

Test:123

This is Test';
Run Code Online (Sandbox Code Playgroud)

我想将此字符串分解为段落数组.我写了下面的代码,但它不起作用:

$array = explode('\n\n', $test);
Run Code Online (Sandbox Code Playgroud)

知道我在这里缺少什么吗?

Ham*_*mZa 7

您可能在Windows上使用\r\n而不是\n.您可以使用正则表达式使其具有通用性preg_split():

$array = preg_split('#(\r\n?|\n)+#', $test);
Run Code Online (Sandbox Code Playgroud)

模式说明:

  • ( :开始匹配组1
  • \r\n?|\n:匹配\r\n,\r\n
  • ) :结束匹配组1
  • + :重复一次或多次

如果要分割2个换行符,则替换+{2,}.


更新:您可以使用:

$array = preg_split('#\R+#', $test);
Run Code Online (Sandbox Code Playgroud)

这个广泛的答案涵盖了其中的含义\R.请注意,这仅在PCRE/perl中受支持.所以从某种意义上讲,它的交叉风味较少.