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表示匹配任何空白字符(空格、制表符、换行符),但我无法弄清楚如何将多个空行变为一个空行?

4

1 回答 1

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

\r作为可选的,它可以与 Unix 风格的行终止符一起使用。不过,输出将具有 Windows 样式的终止符。

\s*允许它匹配包含空格的行。(我最初放在?这里是为了使匹配不贪婪,但这实际上不是必需的,在这种情况下可能是有害的。在 .NET 正则表达式中,\s不要.将换行符与默认的. 匹配RegexOptions。)

{2,}确保它只匹配两个仅由空格分隔的连续换行符。

于 2012-08-31T18:16:53.790 回答