我想要分割一个包含两个以上换行符的字符串,但是我不确定如何做。例如:
$text = "
text1
text2
text3
";
$text = explode(PHP_EOL, $text);
这样做后,数组中会有一些空的索引。我需要在两个换行符处进行分割,而不是一个。我该怎么做?
如果您确定换行符是如何形成的(可能包含 \n 和/或 \r),您可以按照以下方式进行操作:
$Array = explode("\n\n", $text);
$Array = explode("\n\n", trim($text));
PREG_SPLIT_NO_EMPTY
的preg_split() 并使用常量 PHP_EOL
将字符串分割,例如:$arr = preg_split("/". PHP_EOL . "/", $text, -1, PREG_SPLIT_NO_EMPTY);
print_r($arr);
输出:
Array ( [0] => text1 [1] => text2 [2] => text3 )
/\R{2}/
来匹配\r\n\r\n
或\n\n
。$res = preg_split('/\R{2}/', trim($text));
在eval.in上测试; 参见此答案中\R的匹配内容。 - Jonny 5