从字符串中删除空行,但在每行之间允许一行为空

Sem*_*rna 6 php regex

我想从字符串中删除多余的空行,但在每行之间允许一个空行.喜欢:

line1





line2
Run Code Online (Sandbox Code Playgroud)

应该成为:

line1

line2
Run Code Online (Sandbox Code Playgroud)

我确实找到了以下正则表达式(忘了我发现它的地方):

preg_replace('/^\n+|^[\t\s]*\n+/m','',$message);
Run Code Online (Sandbox Code Playgroud)

这有效,但删除所有空行而不在每行之间留下空行.

编辑:我刚刚在http://jsfiddle.net/RAqSS/创建了一个快速示例

Ken*_*rey 7

尝试更换:

\n(\s*\n){2,}
Run Code Online (Sandbox Code Playgroud)

有:

\n\n
Run Code Online (Sandbox Code Playgroud)

像这样:

preg_replace('/\n(\s*\n){2,}/', "\n\n", $message); // Quotes are important here.
Run Code Online (Sandbox Code Playgroud)

如果您不想要空行,则可以将其更改{2,}为a +并使用单行\n.它实际上适用于+而不是{2,}.这{2,}是一个优化.