6

文字列から余分な空の行を削除したいのですが、すべての行の間に1つの空の行を許可します。好き:

line1





line2

次のようになります。

line1

line2

私は次の正規表現を見つけました(どこで見つけたか忘れました):

preg_replace('/^\n+|^[\t\s]*\n+/m','',$message);

これは機能しますが、すべての行の間に空の行を残さずにすべての空の行を削除します。

編集:http://jsfiddle.net/RAqSS/で簡単な例を作成しました

4

3 に答える 3

7

交換してみてください:

\n(\s*\n){2,}

と:

\n\n

このような:

preg_replace('/\n(\s*\n){2,}/', "\n\n", $message); // Quotes are important here.

空の行が必要ない場合は、{2,}をaに変更し+、単一のを使用し\nます。実際には、の+代わりに動作し{2,}ます。これ{2,}は最適化です。

于 2012-05-18T16:01:27.563 に答える
4

次のことを試してください。

preg_replace('/\n(\s*\n)+/', "\n\n", $message);

これにより、改行の後に任意の数の空白行が1つの改行に置き換えられます。

于 2012-05-18T16:00:23.983 に答える
0

jsFiddleに基づいて、これを試してください。

$result = preg_replace('/\n(\n*\s)+/', "\n\n", $message);
于 2012-05-18T16:07:05.057 に答える