Domanda

Come rimuovo il carattere di ritorno a capo (\r) e il carattere di nuova riga(\n) dalla fine di una stringa?

È stato utile?

Soluzione

In questo modo tagliare qualsiasi combinazione di ritorni a capo e ritorni a capo della fine del s:

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

Modifica : O come JP sottolinea gentilmente, si può precisare che più sinteticamente come:

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

Altri suggerimenti

Questo dovrebbe funzionare ...

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

Se si utilizzano più piattaforme sei più sicuro con questo metodo.

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

E 'rappresenterà per i diversi caratteri di nuova riga e ritorno a capo.

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

s è la stringa originale.

s.TrimEnd();

È possibile che questo è tutto quello che dovevo per rimuovere '\ r \ n' dalla fine della mia stringa.

La risposta upvoted sembra sbagliato per me. In primo luogo, non ha funzionato quando ho provato, in secondo luogo, se non lavoro mi aspetterei che s.TrimEnd ( '\ r', '\ n') sarebbe solo rimuovere o un '\ r 'o un '\ n', quindi avrei dovuto passare su mia stringa due volte - una volta per quando '\ n' era alla fine e la seconda volta quando '\ r' era alla fine (ora che il '\ n' è stato rimosso).

Se c'è sempre un singolo CRLF, allora:

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

Se si può o non può avere, allora:

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

Entrambi questi (in base alla progettazione), rimuoverà al massimo una sola CRLF. Cache l'espressione regolare per le prestazioni.

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

Questo è stato troppo facile - per me sto filtrando alcuni elementi di posta elettronica. Sto scrivendo il mio filtro della posta indesiderata personalizzato. Con \ r e / o \ n nella stringa è stato spazzando via tutti gli elementi al posto di filtraggio.

Così, ho appena fatto filter = filter.Remove ( '\ n') e filtro = filter.Remove ( '\ r'). Sto facendo il mio filtro in modo tale che un utente finale può utilizzare Blocco note per modificare direttamente il file in modo non si può dire dove questi personaggi potrebbero incorporare se stessi - potrebbe essere diverso da quello all'inizio o alla fine della stringa. Quindi, la rimozione di tutti lo fa.

Le altre voci di tutto il lavoro, ma Togliere potrebbe essere il più facile?

Ho imparato un po 'di più su Regex da questo post - lavoro piuttosto fresco con il suo uso qui

.

Utilizzo molto il livello di cancellazione

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

e ora abbiamo una riga pulita

varName.replace(/[\r\n]/mg, '')                                              
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top