Php 用一个换行符替换两个以上的换行符

Php 用一个换行符替换两个以上的换行符,php,regex,preg-replace,Php,Regex,Preg Replace,我需要将用户输入中的两个以上的换行符替换为一个换行符,这也必须适用于所有操作系统。我使用SO上的一些示例编写的代码如下: $post_desc = preg_replace("/[\r\n]+/", "\n", $post_desc); $post_desc = nl2br($post_desc); 但这只是用一个单独的换行符替换每个换行符,即使它不止一个,这意味着我需要它将多个换行符替换为一个换行符。目标是将段落显示为段落,并在单个段落中替换段落之间的多个换行符 请导游 ([\r\n]){2

我需要将用户输入中的两个以上的换行符替换为一个换行符,这也必须适用于所有操作系统。我使用SO上的一些示例编写的代码如下:

$post_desc = preg_replace("/[\r\n]+/", "\n", $post_desc);
$post_desc = nl2br($post_desc);
但这只是用一个单独的换行符替换每个换行符,即使它不止一个,这意味着我需要它将多个换行符替换为一个换行符。目标是将段落显示为段落,并在单个段落中替换段落之间的多个换行符

请导游

([\r\n]){2,}

尝试此操作。替换为
$1
。这只会替换多于
2

的换行符,而不是替换重复的换行符,并且在替换所有换行符后使用

,为什么不一步完成此操作:

$post_desc = preg_replace('/\R+/', '<br>', $post_desc);
$post\u desc=preg\u replace(“/\R+/”、“
”、$post\u desc);
@coder示例和预期输出会更好。