¿Cómo elimino el carácter de retorno de carro (\r)
y el nuevo carácter de línea (\n)
desde el final de una cadena?Eliminación de retorno de carro y nueva línea del final de una cadena en C#
Respuesta
Esto recortar cualquier combinación de los retornos de carro y saltos de línea desde el final de s
:
s = s.TrimEnd(new char[] { '\r', '\n' });
Editar: O como JP amablemente señala, que puede significar que más sucintamente como:
s = s.TrimEnd('\r', '\n');
Esto debería funcionar ...
var tst = "12345\n\n\r\n\r\r";
var res = tst.TrimEnd('\r', '\n');
Si siempre hay un solo CRLF, entonces:
myString = myString.Substring(0, myString.Length - 2);
Si se puede o no tenerlo, entonces:
Regex re = new Regex("\r\n$");
re.Replace(myString, "");
Ambos de estos (por diseño), se eliminará como máximo un solo CRLF . Guarde en caché la expresión regular para el rendimiento.
String temp = s.replace("\r\n","").trim();
s
siendo la cadena original.
Eso también: 1) Eliminar \ r \ n del centro de la cadena, 2) Eliminar los espacios en blanco del inicio de la cadena, y 3) eliminar los espacios en blanco del final de la cadena. – RichieHindle
Cierto, asumí solo una/r/n al final. No fue mencionado en el post original. No estoy seguro de que warrents a -1 vote – Crash893
Exactamente lo que estaba buscando. Gracias. – NotMe
Para nosotros 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+", " ");
varName.replace(/[\r\n]/mg, '')
Este fue demasiado fácil - para mí que estoy filtrando ciertos elementos de correo electrónico. Estoy escribiendo mi propio filtro de correo no deseado personalizado. Con \ r y/o \ n en la cadena borraba todos los elementos en lugar de filtrar.
Así que acabo de filtrar = filtrar.Retirar ('\ n') y filtrar = filtrar.Retirar ('\ r'). Estoy creando mi filtro de manera que un usuario final pueda usar el Bloc de notas para editar directamente el archivo, por lo que no se sabe dónde podrían incrustarse estos caracteres, que podría ser diferente al comienzo o al final de la cadena. Entonces eliminarlos a todos lo hace.
Las otras entradas funcionan pero Remove podría ser la más fácil?
Aprendí un poco más sobre Regex de este post, un trabajo bastante bueno con su uso aquí.
Parece que podría hacer simplemente 'filter = filter.Remove ('\ n'). Eliminar ('\ r');' –
Si está utilizando plataformas múltiples, está más seguro utilizando este método.
value.TrimEnd(System.Environment.NewLine.ToCharArray());
Representará diferentes caracteres de nueva línea y retorno de carro.
Método de JP - 'tst.TrimEnd ('\ r', ' \ n ') '- es razonablemente" seguro "en la práctica ya que las EOL principales son [actualmente] combinaciones diferentes de' \ r' y '\ n', pero la de alexw es la respuesta" correcta ". * Deja que CLR te diga qué caracteres están en la nueva línea de esta plataforma. * [EOL no siempre ha sido combos de 0D y 0As] (http://en.wikipedia.org/wiki/Newline#Representations) – ruffin
Solía usar 'Environment.NewLine', pero no parecía manejar instancias donde' \ r' estaba presente sin '\ n'. 'TrimEnd ('r', '\ n')' parece ser más confiable en este caso. –
Podría ser que esto sea realmente un problema multiplataforma, y dec necesita eliminar específicamente ambos \ r \ n, independientemente de lo que diga el entorno del sistema. –
s.TrimEnd();
Lo anterior es todo lo que necesitaba para eliminar '\ r \ n' del final de la cadena.
La respuesta aumentada me parece incorrecta. En primer lugar, no funcionó cuando lo intenté; en segundo lugar, si funcionaba, esperaría que s.TrimEnd ('\ r', '\ n') solo eliminaría una '\ r' o una '\ n', así que tendría que ejecutarla sobre la cadena dos veces, una para cuando '\ n' estaba al final y la segunda vez cuando '\ r' estaba al final (ahora que se eliminó '\ n').
que usar un montón de borrar nivel
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, "");
y ahora tenemos una fila limpia
- 1. Retorno de carro, avance de línea y nueva línea
- 2. consulta SQL para un retorno de carro en una cadena y en última instancia, la eliminación de retorno de carro
- 3. Retorno de carro y nueva línea con Java y readLine()
- 4. Añadir retorno de carro a una cadena
- 5. Añadir retorno de carro al recurso de cadena en WPF
- 6. RichTextBox no procesando nuevos caracteres de retorno de línea/carro
- 7. Cómo eliminar un retorno de carro de una cadena
- 8. Eliminar nueva línea del final del archivo
- 9. Eliminar carro de retorno/nueva línea en la salida de archivo
- 10. C# eliminación de las cadenas de final de cadena
- 11. MVC Preserve retorno de carro - avance de línea en html
- 12. ¿Cómo hacer que echo interprete escapes de barra invertida y no imprimir una nueva línea final?
- 13. Lectura \ r (retorno de carro) vs \ n (nueva línea) desde la consola con getc?
- 14. Nokogiri to_xml sin retorno de carro
- 15. vba userforms comportamiento de retorno de carro
- 16. Publicar nueva línea/retorno de carro como valor de campo oculto
- 17. ¿Cómo puedo crear un retorno de carro en mi cadena C#
- 18. Forzar un retorno de carro en textarea
- 19. ¿Cómo hacer coincidir una cadena, ignorando la nueva línea final?
- 20. ¿El retorno de carro \ ry la nueva línea \ n siempre deben usarse juntos? \ r \ n
- 21. Git: convertir retorno de carro \ r a la nueva línea \ n con git hook?
- 22. MySQL: retorno de carro en consulta
- 23. Agregar una nueva línea en una cadena en C#
- 24. interceptar retorno de carro en un área de texto
- 25. Datos en una tabla con retorno de carro?
- 26. espacios Eliminación al final de una cadena en Java
- 27. ¿Cómo bloquear el ingreso de retorno de carro en textarea?
- 28. Python file.write creación de retorno de carro adicional
- 29. SSRS 2008 R2 Retorno de carro Problema
- 30. Encontrar salto de línea y retorno de carro (\ r \ n) en MySQL
Tomar nota de la palabra clave params en la declaración de TrimEnd, que vamos a pasar varias instancias de un personaje en vez de la matriz. http://msdn.microsoft.com/en-us/library/w5zay9db(VS.71).aspx –
Qué tal esto: s = s.TrimEnd (System.Environment.NewLine.ToCharArray()); –
He estado escribiendo C# desde que salió v1.0 (hace 10 años). Ahora cuéntame sobre TrimEnd. Doh! – s15199d