我想从字符串中删除多余的空行,但在每行之间允许一个空行。喜欢:
line1
line2
应该成为:
line1
line2
我确实找到了以下正则表达式(忘了我发现它的地方):
preg_replace('/^\n+|^[\t\s]*\n+/m','',$message);
这有效,但删除所有空行而不在每行之间留下空行。
编辑:我刚刚在http://jsfiddle.net/RAqSS/创建了一个快速示例
尝试更换:
\n(\s*\n){2,}
有:
\n\n
像这样:
preg_replace('/\n(\s*\n){2,}/', "\n\n", $message); // Quotes are important here.
如果你不想要一个空行,你可以将{2,}
更改为+
并使用单个\n
。它实际上可以使用+
而不是{2,}
。 {2,}
是一个优化。
请尝试以下方法:
preg_replace('/\n(\s*\n)+/', "\n\n", $message);
这将替换换行符,后跟任意数量的空行和一个换行符。
基于你的jsFiddle,试试这个:
$result = preg_replace('/\n(\n*\s)+/', "\n\n", $message);