Remove empty lines from string, but allow one empty between every line
php, regex
Solution
Try replacing:
\n(\s*\n){2,}
with:
\n\n
Like this:
preg_replace('/\n(\s*\n){2,}/', "\n\n", $message); // Quotes are important here.
If you don't want an empty line, you would change the `{2,}` to a `+` and use a single `\n`. It would actually work with a `+` instead of `{2,}`. The `{2,}` is an optimization.
Problem
I would like to remove excessive empty lines from a string, but allow one empty line between every line. Like: ``` line1 line2 ``` Should become: ``` line1 line2 ``` I did find the following regex (forgot where i found it): ``` preg_replace('/^\n+|^[\t\s]*\n+/m','',$message); ``` This works, but removes all empty lines without leaving an empty line between every line. Edit: I just created a quick example at http://jsfiddle.net/RAqSS/