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

标签 php arrays explode

我有以下文字:

$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/

相关文章:

php - Laravel:将查询生成器转换为 Eloquent:ORM

php - jQuery 仅在父 div 中切换具有类的元素

javascript - 将数组中的多个元素移动到数组中的某个索引

qsort() 比较二维数组

python - 如何使用 SQLAlchemy session 确定一个 PGArray 是否包含在另一个 PGArray 中?

MySQL 从自定义 (|) 分隔的字符串中获取不同的值

php - 将字符串与 [PHP] 之间的标签一起分解

php - HTML to Query Source - URL ENCODING(答案)

php: explode 字符串

java - 惰性(贪婪)使用正则表达式匹配多个组