从c#中的string的末尾删除回车和换行符

如何从string的末尾删除回车符(\r)和新行符(\n)

这将从s结束时删除回车符和换行符的任意组合:

 s = s.TrimEnd(new char[] { '\r', '\n' }); 

编辑 :或者正如JP指出的那样,你可以更简洁地拼写为:

 s = s.TrimEnd('\r', '\n'); 

这应该工作…

 var tst = "12345\n\n\r\n\r\r"; var res = tst.TrimEnd( '\r', '\n' ); 

如果您使用多个平台,则使用此方法更安全。

 value.TrimEnd(System.Environment.NewLine.ToCharArray()); 

它将考虑不同的换行符和回车符。

 String temp = s.replace("\r\n","").trim(); 

s是原始的string。

如果总是有一个CRLF,那么:

 myString = myString.Substring(0, myString.Length - 2); 

如果可以或不可以,那么:

 Regex re = new Regex("\r\n$"); re.Replace(myString, ""); 

这两个(按devise)将最多删除一个CRLF。 caching正则expression式的性能。

对于我们VBers:

 TrimEnd(New Char() {ControlChars.Cr, ControlChars.Lf}) 

这太容易了 – 对我来说,我正在筛选出某些电子邮件。 我正在编写我自己的自定义电子垃圾邮件filter。 在string中使用\ r和/或\ n将清除所有项目而不是筛选。

所以,我只是做了filter = filter.Remove('\ n')和filter = filter.Remove('\ r')。 我正在使我的filter,使最终用户可以使用记事本直接编辑文件,所以不知道这些字符可能自己embedded的位置 – 可能不是在string的开始或结束。 所以删除他们都做到了。

其他条目都可以,但删除可能是最简单的?

我从这篇文章中学到了更多关于Regex的知识 – 在这里使用它非常酷。

 s.TrimEnd(); 

以上是我所需要从我的string结尾删除“\ r \ n”。

upvoted答案似乎是错误的我。 首先,当我尝试时,它没有工作,其次,如果它工作,我会期望s.TrimEnd('\ r','\ n')只会删除'\ r'或'\ n' ,所以我必须在我的string上运行两次 – 一次是在'\ n'结束时,第二次是在'\ r'结尾时(现在'\ n'被删除了) 。

 string k = "This is my\r\nugly string. I want\r\nto change this. Please \r\n help!"; k = System.Text.RegularExpressions.Regex.Replace(k, @"\r\n+", " "); 
 varName.replace(/[\r\n]/mg, '') 

我用了很多擦除级别

 String donen = "lots of stupid whitespaces and new lines and others..." //Remove multilines donen = Regex.Replace(donen, @"^\s+$[\r\n]*", "", RegexOptions.Multiline); //remove multi whitespaces RegexOptions options = RegexOptions.None; Regex regex = new Regex("[ ]{2,}", options); donen = regex.Replace(donen, " "); //remove tabs char tab = '\u0009'; donen = donen.Replace(tab.ToString(), ""); //remove endoffile newlines donen = donen.TrimEnd('\r', '\n'); //to be sure erase new lines again from another perspective donen.Replace(Environment.NewLine, ""); 

现在我们有一个干净的一排