我有以下文字:
$test = 'Test This is first line
Test:123
This is Test';
我想将这个字符串分解成一个段落数组。我写了下面的代码,但它不工作:
$array = explode('\n\n', $test);
知道我在这里遗漏了什么吗?
最佳答案
您可能在使用 \r\n
而不是 \n
的 Windows 上。您可以使用正则表达式使其与 preg_split()
通用:
$array = preg_split('#(\r\n?|\n)+#', $test);
图案解释:
(
: 开始匹配第1组\r\n?|\n
:匹配\r\n
、\r
或\n
)
: 结束匹配组1+
: 重复一次或多次
如果您想按 2 个换行符拆分,请将 +
替换为 {2,}
。
更新:您可能会使用:
$array = preg_split('#\R+#', $test);
This extensive answer涵盖了\R
的含义。请注意,这仅在 PCRE/perl 中受支持。所以从某种意义上说,它的交叉 flavor 兼容性较低。
关于php - 根据段落将文本分解为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17673342/