Suppression du retour chariot et de la nouvelle ligne à la fin d’une chaîne dans c #

Comment supprimer le caractère de retour chariot (\r) et le nouveau caractère de ligne (\n) de la fin d’une chaîne?

Cela supprime toute combinaison de retours chariot et de nouvelles lignes à partir de la fin de s :

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

Edit : Ou, comme JP l’a gentiment fait remarquer, vous pouvez épeler cela plus succinctement:

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

Cela devrait fonctionner …

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

Si vous utilisez plusieurs plates-formes, vous êtes plus en sécurité en utilisant cette méthode.

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

Il tiendra compte de différents caractères de retour à la ligne et de retour chariot.

 Ssortingng temp = s.replace("\r\n","").sortingm(); 

s étant la chaîne originale.

 s.TrimEnd(); 

Ce qui précède est tout ce dont j’avais besoin pour supprimer ‘\ r \ n’ de la fin de ma chaîne.

La réponse votée me semble erronée. Premièrement, cela n’a pas fonctionné quand j’ai essayé, deuxièmement, si cela fonctionnait, je m’attendrais à ce que s.TrimEnd (‘\ r’, ‘\ n’) ne supprime qu’un ‘\ r’ ou un ‘\ n’ , donc je devrais le lancer sur ma chaîne deux fois – une fois quand ‘\ n’ était à la fin et la deuxième fois quand ‘\ r’ était à la fin (maintenant que ‘\ n’ a été supprimé) .

S’il y a toujours un seul CRLF, alors:

 mySsortingng = mySsortingng.Subssortingng(0, mySsortingng.Length - 2); 

S’il peut ou non l’avoir, alors:

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

Les deux (par conception), supprimeront au plus un seul CRLF. Cachez le regex pour la performance.

Pour nous VBers:

 TrimEnd(New Char() {ControlChars.Cr, ControlChars.Lf}) 
 ssortingng k = "This is my\r\nugly ssortingng. I want\r\nto change this. Please \r\n help!"; k = System.Text.RegularExpressions.Regex.Replace(k, @"\r\n+", " "); 

C’était trop facile – pour moi, je filtre certains éléments de courrier électronique. J’écris mon propre filtre de courrier indésirable personnalisé. Avec \ r et / ou \ n dans la chaîne, tous les éléments étaient effacés au lieu d’être filtrés.

Donc, je viens de filtrer = filter.Remove (‘\ n’) et filter = filter.Remove (‘\ r’). Je crée mon filtre de telle sorte qu’un utilisateur final puisse utiliser le Bloc-notes pour éditer directement le fichier. Donc, les enlever tous le fait.

Les autres entrées fonctionnent toutes, mais Supprimer est peut-être la plus facile?

J’ai appris beaucoup de choses sur Regex à partir de cet article – un travail plutôt cool avec son utilisation ici.

J’utilise beaucoup de niveau d’effacement

 Ssortingng 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.ToSsortingng(), ""); //remove endoffile newlines donen = donen.TrimEnd('\r', '\n'); //to be sure erase new lines again from another perspective donen.Replace(Environment.NewLine, ""); 

et maintenant nous avons une ligne propre

 varName.replace(/[\r\n]/mg, '')