如何从格式化的字符串中删除空行?

如何在C#中删除字符串中的空行? 我在C#(winforms)中生成一些文本文件,由于某种原因,有一些空行。 如何在生成字符串后删除它们(使用StringBuilder和TextWrite )。

示例文本文件:

THIS IS A LINE THIS IS ANOTHER LINE AFTER SOME EMPTY LINES! 

谢谢。

如果您还想删除仅包含空格的行,请使用

 resultString = Regex.Replace(subjectString, @"^\s+$[\r\n]*", string.Empty, RegexOptions.Multiline); 

^\s+$将删除从第一个空行到最后一行(在连续的空行块中)的所有内容,包括仅包含制表符或空格的行。

[\r\n]*将删除最后一个CRLF(或者只是LF,这很重要,因为.NET正则表达式引擎匹配\r\n之间的$ ,有趣的是)。

@Tim Pietzcker – 不适合我。 我必须改变一点但是thx!
Ehhh C#Regex ..我不得不再次改变它,但这很好用:

 private string RemoveEmptyLines(string lines) { return Regex.Replace(lines, @"^\s*$\n|\r", string.Empty, RegexOptions.Multiline).TrimEnd(); } 

示例: http : //regex101.com/r/vE5mP1/2

您可以尝试String.Replace("\n\n", "\n");

试试这个

 Regex.Replace(subjectString, @"^\r?\n?$", "", RegexOptions.Multiline); 
  private string remove_space(string st) { String final = ""; char[] b = new char[] { '\r', '\n' }; String[] lines = st.Split(b, StringSplitOptions.RemoveEmptyEntries); foreach (String s in lines) { if (!String.IsNullOrWhiteSpace(s)) { final += s; final += Environment.NewLine; } } return final; } 

如果你像我一样并且以上所有行都不适用于你,那么我找了一个函数可以告诉你字符串是否为空(如果是,你可以销毁或删除它,就像我做的那样)

 // if string "myText" is empty then if (string.IsNullOrEmpty("myText")){ //delete/disable string } 

此模式非常适合删除仅有空格和/或制表符的空行和行。

 s = Regex.Replace(s, "^\s*(\r\n|\Z)", "", RegexOptions.Multiline) 

我找到了这个问题的简单答案

YourradTextBox.Lines = YourradTextBox.Lines.Where(p => p.Length > 0).ToArray();

改编自Marco Minerva [MCPD]: https : //social.msdn.microsoft.com/Forums/windows/en-US/b1bb4107-4ad5-4cd3-bd20-9c2b3f9b31a6/delete-lines-from-multiline-textbox-if -它的-含有-某些字符串-C?论坛= WinForms的&教授=所需