我想从字符串中删除过多的空行,但允许每行之间有一个空行。喜欢:
line1
line2
应该变成:
line1
line2
我确实找到了以下正则表达式(忘记在哪里找到它):
preg_replace('/^\n+|^[\t\s]*\n+/m','',$message);
这可行,但会删除所有空行,而不会在每行之间留下空行。
我想从字符串中删除过多的空行,但允许每行之间有一个空行。喜欢:
line1
line2
应该变成:
line1
line2
我确实找到了以下正则表达式(忘记在哪里找到它):
preg_replace('/^\n+|^[\t\s]*\n+/m','',$message);
这可行,但会删除所有空行,而不会在每行之间留下空行。
尝试更换:
\n(\s*\n){2,}
和:
\n\n
像这样:
preg_replace('/\n(\s*\n){2,}/', "\n\n", $message); // Quotes are important here.
如果您不想要一个空行,您可以将 更改{2,}
为 a+
并使用单个\n
. 它实际上可以使用 a+
而不是{2,}
. 是{2,}
一种优化。
尝试以下操作:
preg_replace('/\n(\s*\n)+/', "\n\n", $message);
这将用一个换行符替换一个换行符,然后是任意数量的空白行。
根据您的 jsFiddle,试试这个:
$result = preg_replace('/\n(\n*\s)+/', "\n\n", $message);