Como removo o caractere de retorno de carro (\r)
e o caractere (\n)
de nova linha do final de uma string?
c#
string
newline
carriage-return
Avik
fonte
fonte
s = s.TrimEnd()
- como dizem os documentos: Se trimChars for nulo ou uma matriz vazia, os caracteres de espaço em branco Unicode serão removidos. - consulte String.TrimEnd'\r'
e'\n'
e nada mais, não o caractere de espaço' '
, por exemplo.Isso deve funcionar ...
fonte
Se você estiver usando várias plataformas, estará mais seguro usando este método.
Ele levará em conta diferentes caracteres de nova linha e de retorno de carro.
fonte
tst.TrimEnd( '\r', '\n' )
- é razoavelmente "seguro" na prática, visto que os principais EOLs são [atualmente] apenas combinações diferentes de\r
e\n
, mas o de alexw é a resposta "certa". Deixe o CLR dizer quais são os chars na nova linha desta plataforma. EOL nem sempre foi combinações de 0Ds e 0AsEnvironment.NewLine
mas não parecia lidar com instâncias em que\r
estava presente sem\n
.TrimEnd('r','\n')
parece ser mais confiável neste caso.s
sendo a string original. (Letras maiúsculas)fonte
replace()
entãotrim()
não é exagero quandoTrimEnd()
posso fazer o trabalho sozinho ou estou perdendo alguma coisa?O texto acima é tudo que eu precisava para remover '\ r \ n' do final da minha string.
A resposta votada parece errada para mim. Em primeiro lugar, isso não funcionou quando eu tentei, em segundo lugar, se ele fez um trabalho eu esperaria que s.TrimEnd ( '\ r', '\ n') só iria remover qualquer um '\ r' ou '\ n' , então eu teria que executá-lo em minha string duas vezes - uma para quando '\ n' estava no final e a segunda vez para quando '\ r' estava no final (agora que o '\ n' foi removido) .
fonte
Se houver sempre um único CRLF, então:
Se pode ou não ter, então:
Ambos (por design) removerão no máximo um único CRLF. Armazene o regex para desempenho.
fonte
Para nós, VBers:
fonte
fonte
Isso foi muito fácil - para mim, estou filtrando alguns itens de e-mail. Estou escrevendo meu próprio filtro de lixo eletrônico personalizado. Com \ r e / ou \ n na string, ele estava apagando todos os itens em vez de filtrar.
Então, acabei de fazer filter = filter.Remove ('\ n') e filter = filter.Remove ('\ r'). Estou fazendo meu filtro de forma que um usuário final possa usar o Bloco de notas para editar diretamente o arquivo, então não há como dizer onde esses caracteres podem se encaixar - podem estar em algo diferente do início ou final da string. Então, removê-los todos resolve.
Todas as outras entradas funcionam, mas Remover pode ser a mais fácil?
Aprendi um pouco mais sobre Regex neste post - um trabalho muito legal com seu uso aqui.
fonte
filter = filter.Remove('\n').Remove('\r');
Eu uso muito nível de apagamento
e agora temos uma linha limpa
fonte
fonte
Isso é o que eu tenho que trabalhar para mim.
fonte