Frage

Wie entferne ich den Wagenrücklaufzeichen (\r) und die neue Linie character(\n) vom Ende eines Strings?

War es hilfreich?

Lösung

Dies wird eine beliebige Kombination aus Wagenrücklauf und Zeilenumbrüche aus dem Ende des s abschneiden:

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

Bearbeiten : Oder wie JP freundlich weist darauf hin, können Sie das buchstabieren kurz und bündig wie:

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

Andere Tipps

Das sollte funktionieren ...

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

Wenn Sie mehrere Plattformen verwenden Sie sind sicherer mit dieser Methode.

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

Es wird verschiedene Newline und Carriage-Return-Zeichen machen.

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

s wobei die ursprüngliche Zeichenfolge.

s.TrimEnd();

Das oben ist alles, was ich brauchte zu entfernen ‚\ r \ n‘ vom Ende meiner Schnur.

Die upvoted Antwort scheint mir falsch. Erstens ist es nicht funktionierte, als ich versuchte, zweitens, wenn es funktioniert hat würde ich erwarten, dass s.TrimEnd ( ‚\ r‘, ‚\ n‘) nur entfernen entweder a ‚\ r 'oder ein ‚\ n‘, so würde ich es über meinen String zweimal ausführen müssen - einmal als ‚\ n‘ am Ende war und das zweite Mal für, wenn ‚\ r‘ war am Ende (jetzt, dass die '\ n' entfernt wurde).

Wenn es immer eine einzelne CRLF, dann:

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

Wenn es kann oder auch nicht hat, dann:

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

Beide (mit Absicht), höchstens einem einzigen CRLF entfernen. Cache die Regex für die Leistung.

Für uns VBers:

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

Das war zu einfach - für mich Ich bin Ausfiltern bestimmte E-Mail-Elemente. Ich bin meine eigenen benutzerdefinierte E-Mail Junk-Filter zu schreiben. Mit \ r und / oder \ n in der Kette wurde auszulöschen alle Elemente statt Filterung.

Also, ich habe gerade filter = filter.Remove ( '\ n') und filter = filter.Remove ( '\ r'). Ich mache meine Filter, so dass ein Endbenutzer Editor verwenden kann, um die Datei direkt zu bearbeiten, damit nicht sagen, es gibt, wo diese Figuren selbst einbetten könnten - könnte anders sein, als am Anfang oder Ende des Strings. So entfernt sie alle tun es.

Die anderen Einträge alle Arbeiten aber entfernen könnte die einfachste sein?

Ich habe gelernt, ein bisschen mehr über Regex von diesem Posten - ziemlich cool Arbeit mit seiner Verwendung hier

.

Ich verwende viel Löschpegel

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

und jetzt haben wir eine saubere eine Zeile

varName.replace(/[\r\n]/mg, '')                                              
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top