1

私は次のようなテキストを持っています

This is a line




This is other line







This is another line

それらの複数の空の行を取り除く方法は?

私が欲しいのは

This is a line

This is other line

This is another line

\ sは、任意の空白文字(スペース、タブ、改行)に一致すると言いますが、複数の空の行を1つの空の行にする方法がわかりませんか?

4

1 に答える 1

5
Regex.Replace(input, @"(\r?\n\s*){2,}", Environment.NewLine + Environment.NewLine);

\rオプションであると、Unixスタイルのラインターミネータで動作します。ただし、出力にはWindowsスタイルのターミネータが含まれます。

\s*空白を含む行に一致させることができます。(私は元々、?欲張りでない一致を作成するためにここに入力しましたが、これは実際には必要ではなく、この場合は有害である可能性があります。.NET正規表現では、改行をデフォルトと一致させません\s。) .RegexOptions

{2,}空白だけで区切られた2つの連続する改行とのみ一致することを確認します。

于 2012-08-31T18:16:53.790 に答える