在textarea表单中删除两个以上的回车returns?

Remove more than two carriage returns in textarea form?

我花了几个小时研究了数十种不同的解决方案,但 none 其中的解决方案有效。我在 php 字符串中收到文本区域的内容,我想删除超过一个空行的任何内容。

Example ok
Hi how are you, 
// one blank line here so ok to keep
Not too bad thanks

Example not ok
hi how are you
// two lines (or more) here so we remove one and keep the other

not too bad thanks

有人知道 preg_replace 的正确用法吗?请注意,我不想修改数据(请不要使用 nl2br()),因为我更容易保持原始数据(ios 支持)。

你可以试试

preg_replace("/[\r\n]+/", "\n", $text);

它将一个(或多个)换行符或回车 return 替换为单个换行符。

也许你应该试试这个:

preg_replace('/\n\r(\n\r)+/', "\n\r", $str);