文字列から余分な空の行を削除したいのですが、すべての行の間に1つの空の行を許可します。好き:
line1
line2
次のようになります。
line1
line2
私は次の正規表現を見つけました(どこで見つけたか忘れました):
preg_replace('/^\n+|^[\t\s]*\n+/m','',$message);
これは機能しますが、すべての行の間に空の行を残さずにすべての空の行を削除します。
文字列から余分な空の行を削除したいのですが、すべての行の間に1つの空の行を許可します。好き:
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
ます。実際には、の+
代わりに動作し{2,}
ます。これ{2,}
は最適化です。
次のことを試してください。
preg_replace('/\n(\s*\n)+/', "\n\n", $message);
これにより、改行の後に任意の数の空白行が1つの改行に置き換えられます。
jsFiddleに基づいて、これを試してください。
$result = preg_replace('/\n(\n*\s)+/', "\n\n", $message);