¿Cómo elimino el carácter de retorno de carro (\r)
y el carácter (\n)
de nueva línea del final de una cadena?
c#
string
newline
carriage-return
Avik
fuente
fuente
s = s.TrimEnd()
, como dicen los documentos: si trimChars es nulo o una matriz vacía, los caracteres de espacio en blanco Unicode se eliminan en su lugar. - ver String.TrimEnd'\r'
y'\n'
y nada más, no el carácter de espacio' '
, por ejemplo.Esto debería funcionar ...
fuente
Si está utilizando varias plataformas, está más seguro utilizando este método.
Tendrá en cuenta diferentes caracteres de nueva línea y retorno de carro.
fuente
tst.TrimEnd( '\r', '\n' )
- es razonablemente "seguro" en la práctica ya que los principales EOL son [actualmente] solo combinaciones diferentes de\r
y\n
, pero el de alexw es la respuesta "correcta". Deje que CLR le diga qué caracteres hay en la nueva línea de esta plataforma. EOL no siempre ha sido combos de 0DS y 0ASEnvironment.NewLine
pero no parecía manejar instancias donde\r
estaba presente sin\n
.TrimEnd('r','\n')
parece ser más confiable en este caso.s
siendo la cadena original. (Nota capitales)fuente
replace()
entoncestrim()
no es exagerado cuandoTrimEnd()
puedo hacer el trabajo solo, o me estoy perdiendo algo?Lo anterior es todo lo que necesitaba para eliminar '\ r \ n' del final de mi cadena.
La respuesta votada a favor me parece incorrecta. En primer lugar, no funcionó cuando lo probé, en segundo lugar, si lo hizo el trabajo que se puede esperar que s.TrimEnd ( '\ r', '\ n') sería eliminar sólo sea un '\ r' o una '\ n' , así que tendría que pasarlo por mi cadena dos veces: una para cuando '\ n' estaba al final y la segunda vez para cuando '\ r' estaba al final (ahora que se eliminó el '\ n') .
fuente
Si siempre hay un solo CRLF, entonces:
Si puede tenerlo o no, entonces:
Ambos (por diseño) eliminarán como máximo un único CRLF. Almacene la expresión regular en caché para el rendimiento.
fuente
Para nosotros VBers:
fuente
fuente
Esto fue demasiado fácil, para mí 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, estaba borrando todos los elementos en lugar de filtrar.
Entonces, acabo de hacer filter = filter.Remove ('\ n') y filter = filter.Remove ('\ r'). Estoy haciendo mi filtro de modo que un usuario final pueda usar el Bloc de notas para editar directamente el archivo, por lo que no se sabe dónde pueden incrustarse estos caracteres; podría ser otro que al principio o al final de la cadena. Así que eliminarlos todos lo hace.
Todas las demás entradas funcionan, pero ¿Eliminar podría ser la más fácil?
Aprendí bastante más sobre Regex en esta publicación: un trabajo bastante bueno con su uso aquí.
fuente
filter = filter.Remove('\n').Remove('\r');
Uso mucho nivel de borrado
y ahora tenemos una fila limpia
fuente
fuente
Esto es lo que conseguí trabajar para mí.
fuente