web-dev-qa-db-ja.com

C#の文字列の末尾から改行と改行を削除する

文字列の末尾から復帰文字(\r)と改行character(\n)を削除するにはどうすればよいですか?

104
Avik

これにより、sの末尾から復帰と改行の組み合わせが削除されます。

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

編集:またはJPが親切に指摘しているように、次のようにもっと簡潔に綴ることができます:

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

これは動作するはずです...

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

複数のプラットフォームを使用している場合、この方法を使用する方が安全です。

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

異なる改行文字と復帰文字を考慮します。

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

sは元の文字列です。

11
Crash893
s.TrimEnd();

上記は、文字列の末尾から「\ r\n」を削除するために必要なすべてです。

賛成の答えは私には間違っているようです。第一に、試してみてもうまくいきませんでした、第二に、もしうまくいくなら、s.TrimEnd( '\ r'、 '\ n')はeither a '\ r 'または'\n 'なので、文字列に対して2回実行する必要があります-1回は'\n 'が最後に、2回目は'\r 'が最後になったとき(今は「\ n」は削除されました)。

7
martinp999

常に単一のCRLFがある場合:

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

持っている場合と持っていない場合は、次のようにします。

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

これらは両方とも(設計上)、最大で1つのCRLFを削除します。パフォーマンスのために正規表現をキャッシュします。

4

私たちVBersの場合:

TrimEnd(New Char() {ControlChars.Cr, ControlChars.Lf})
4
Simon
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+", " ");
3
vnRock

これはあまりにも簡単でした-私にとっては、特定のメールアイテムを除外しています。独自のカスタムメールジャンクフィルターを作成しています。文字列に\ rおよび/または\ nを使用すると、フィルタリングではなくすべてのアイテムが消去されます。

したがって、filter = filter.Remove( '\ n')およびfilter = filter.Remove( '\ r')を実行しました。エンドユーザーがメモ帳を使用してファイルを直接編集できるようにフィルターを作成しているため、これらの文字がどこに埋め込まれるかはわかりません-文字列の先頭または末尾以外にある可能性があります。そのため、それらをすべて削除することでそれが行われます。

他のエントリはすべて機能しますが、削除が最も簡単な場合がありますか?

この投稿からRegexについてかなり多くのことを学びました。

3
user1585204

私はたくさんの消去レベルを使用します

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

そして今、きれいな1行があります

1
matasoy
varName.replace(/[\r\n]/mg, '')                                              
0
Pat