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