128

如何从字符串末尾删除回车符(\r)和换行符(\n)

4

12 回答 12

213

这将从以下结尾删除任何回车符和换行符的组合s

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

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

s = s.TrimEnd('\r', '\n');
于 2009-05-16T18:55:18.950 回答
33

这应该工作...

var tst = "12345\n\n\r\n\r\r";
var res = tst.TrimEnd( '\r', '\n' );
于 2009-05-16T18:57:43.423 回答
20
String temp = s.Replace("\r\n","").Trim();

s是原始字符串。(注意大写)

于 2009-05-16T19:05:58.957 回答
20

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

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

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

于 2013-02-20T06:11:11.987 回答
9
s.TrimEnd();

以上是我从字符串末尾删除 '\r\n' 所需的全部内容。

赞成的答案对我来说似乎是错误的。首先,当我尝试时它不起作用,其次,如果它确实起作用,我希望 s.TrimEnd('\r', '\n') 只会删除'\r''\n' ,所以我必须在我的字符串上运行两次 - 一次是在 '\n' 结束时,第二次是在 '\r' 结束时(现在 '\n' 已删除) .

于 2015-04-22T22:49:04.437 回答
4

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

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

如果它可能有也可能没有,那么:

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

这两个(按设计)将最多删除一个 CRLF。缓存正则表达式以提高性能。

于 2009-05-16T18:57:46.353 回答
4

对于我们 VBers:

TrimEnd(New Char() {ControlChars.Cr, ControlChars.Lf})
于 2009-10-01T15:28:51.030 回答
4
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+", " ");
于 2011-03-24T20:17:45.027 回答
3

这太容易了——对我来说,我正在过滤掉某些电子邮件项目。我正在编写自己的自定义电子邮件垃圾过滤器。在字符串中使用 \r 和/或 \n 时,它会清除所有项目而不是过滤。

所以,我只是做了 filter = filter.Remove('\n') 和 filter = filter.Remove('\r')。我正在制作我的过滤器,以便最终用户可以使用记事本直接编辑文件,因此不知道这些字符可能在哪里嵌入——可能不是在字符串的开头或结尾。因此,将它们全部删除即可。

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

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

于 2013-01-12T19:11:55.580 回答
2

我使用了很多擦除级别

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, "");

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

于 2017-11-14T22:40:30.233 回答
2

这就是我必须为我工作的。

s.Replace("\r","").Replace("\n","")
于 2020-06-03T14:52:26.807 回答
0
varName.replace(/[\r\n]/mg, '')                                              
于 2012-10-17T14:57:23.313 回答