Csharp/C#教程:如何从格式化的字符串中删除空行?分享


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

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

示例文本文件:

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

谢谢。

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

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

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

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

@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("nn", "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*(rn|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的&教授=所需

上述就是C#学习教程:如何从格式化的字符串中删除空行?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/987191.html

(0)
上一篇 2021年12月22日
下一篇 2021年12月22日

精彩推荐