Wie entferne ich das Wagenrücklaufzeichen (\r)
und das neue Zeilenzeichen (\n)
vom Ende einer Zeichenfolge?
c#
string
newline
carriage-return
Avik
quelle
quelle
s = s.TrimEnd()
- wie in den Dokumenten angegeben: Wenn trimChars null oder ein leeres Array ist, werden stattdessen Unicode-Leerzeichen entfernt. - siehe String.TrimEnd'\r'
und'\n'
und nichts anderem,' '
zum Beispiel nicht nach dem Leerzeichen .Das sollte funktionieren ...
quelle
Wenn Sie mehrere Plattformen verwenden, sind Sie mit dieser Methode sicherer.
Es werden verschiedene Zeilenumbruch- und Wagenrücklaufzeichen berücksichtigt.
quelle
tst.TrimEnd( '\r', '\n' )
- ist in der Praxis ziemlich "sicher", da große EOLs [derzeit] nur verschiedene Kombinationen von\r
und sind\n
, aber die von alexw ist die "richtige" Antwort. Lassen Sie sich von der CLR mitteilen, welche Zeichen in der Newline dieser Plattform enthalten sind. EOL hat nicht immer Kombinationen von 0DS gewesen und 0ASEnvironment.NewLine
aber es schien nicht mit Fällen umzugehen, in denen\r
es ohne vorhanden war\n
.TrimEnd('r','\n')
scheint in diesem Fall zuverlässiger zu sein.s
ist die ursprüngliche Zeichenfolge.quelle
replace()
danntrim()
nicht übertrieben, wennTrimEnd()
die Arbeit alleine erledigt werden kann, oder fehlt mir etwas?Das Obige ist alles, was ich brauche, um '\ r \ n' vom Ende meiner Zeichenfolge zu entfernen.
Die positive Antwort scheint mir falsch. Erstens hat es nicht funktioniert, als ich es versucht habe, zweitens, wenn es funktioniert hat, würde ich erwarten, dass s.TrimEnd ('\ r', '\ n') nur entweder ein '\ r' oder ein '\ n' entfernen würde. , also müsste ich es zweimal über meine Zeichenfolge laufen lassen - einmal, wenn '\ n' am Ende war und das zweite Mal, wenn '\ r' am Ende war (jetzt, wo das '\ n' entfernt wurde) .
quelle
Wenn es immer eine einzelne CRLF gibt, dann:
Wenn es es haben kann oder nicht, dann:
Beide (von Entwurf) entfernen höchstens eine einzelne CRLF. Zwischenspeichern Sie den regulären Ausdruck für die Leistung.
quelle
Für uns VBer:
quelle
quelle
Das war zu einfach - für mich filtere ich bestimmte E-Mail-Elemente heraus. Ich schreibe meinen eigenen E-Mail-Junk-Filter. Mit \ r und / oder \ n in der Zeichenfolge wurden alle Elemente gelöscht, anstatt zu filtern.
Also habe ich gerade filter = filter.Remove ('\ n') und filter = filter.Remove ('\ r') gemacht. Ich mache meinen Filter so, dass ein Endbenutzer die Datei mit Notepad direkt bearbeiten kann, sodass nicht abzusehen ist, wo sich diese Zeichen möglicherweise selbst einbetten - möglicherweise nicht am Anfang oder Ende der Zeichenfolge. Das Entfernen aller macht es also.
Die anderen Einträge funktionieren alle, aber Entfernen könnte am einfachsten sein?
Ich habe in diesem Beitrag einiges mehr über Regex gelernt - ziemlich coole Arbeit mit seiner Verwendung hier.
quelle
filter = filter.Remove('\n').Remove('\r');
Ich benutze viel Löschstufe
und jetzt haben wir eine saubere eine Reihe
quelle
quelle
Das muss ich für mich arbeiten.
quelle