删除多余的行返回

5 php whitespace

我正在寻找像trim()这样的东西,但是在字符串的范围内.用户在键入后有时会输入2,3,4或更多行,我需要清理此输入.

样本输入

i like cats


my cat is happy
i love my cat



hope you have a nice day
Run Code Online (Sandbox Code Playgroud)

期望的输出

i like cats

my cat is happy
i love my cat

hope you have a nice day
Run Code Online (Sandbox Code Playgroud)

我没有看到任何内置的东西,并且字符串替换将需要多次迭代才能完成工作.在我掀起一个小的递归字符串替换之前,我想看看你们有什么其他的建议.

我有一种奇怪的感觉,这个也有一个正则表达式.

mar*_*kus 10

function str_squeeze($body) {
    return preg_replace("/\n\n+/", "\n\n", $body);
}
Run Code Online (Sandbox Code Playgroud)


小智 3

终于设法得到它,需要 preg 所以你在 php 中使用 PCRE 版本,并且还需要一个 \n\n 替换字符串,以便不擦除除一个之外的所有行结尾:

  $body = preg_replace("/\n\n+/", "\n\n", $body);
Run Code Online (Sandbox Code Playgroud)

感谢您让我走上正轨。