Eu tenho esta string:
"some text\nandsomemore"
Eu preciso remover o "\ n" dele. eu tentei
"some text\nandsomemore".gsub('\n','')
mas não funciona. Como eu faço isso? Obrigado pela leitura.
Você precisa usar "\n"
não '\n'
em sua gsub. As diferentes marcas de aspas se comportam de maneira diferente.
As aspas duplas "
permitem expansão de caracteres e interpolação de expressões, ou seja. eles permitem que você use caracteres de controle de escape \n
para representar seu verdadeiro valor, neste caso, nova linha , e permitem o uso de #{expression}
para que você possa tecer variáveis e, bem, praticamente qualquer expressão ruby que você quiser no texto.
Enquanto, por outro lado, as aspas simples '
tratam a string literalmente, então não há expansão, substituição, interpolação ou o que quer que seja.
Nesse caso específico, é melhor usar o método .delete
ou .tr
String para excluir as novas linhas .
tr
é a melhor escolha para essa tarefa, mas, como disse, achei melhor apontar a diferença entre aspas simples e duplas quando respondi.Quando você quiser remover uma string, em vez de substituí-la, você pode usar
String#delete
(ou seu equivalente mutadorString#delete!
), por exemplo:x
agora é igual a "foofoo"Neste caso específico,
String#delete
é mais legível do quegsub
porque você não está realmente substituindo a string por nada.fonte
delete
não é destrutivo como indicado aqui. Ele retorna uma nova string.Se você quiser ou não se importar em ter todos os espaços em branco à esquerda e à direita de sua string removidos, você pode usar o
strip
método.conforme mencionado aqui .
editar O título original desta questão era diferente. Minha resposta é para a pergunta original.
fonte
strip
remove apenas os espaços em branco à esquerda e à direita: ruby-doc.org/core-1.9.3/String.html#method-i-strip-21Você não precisa de um regex para isso. Use tr:
fonte
replace
apenas muda a string para uma nova, como atribuição de variável; enquantotr
é um localizar e substituir global caractere por caractere.uso
chomp
oustrip
funções do Ruby:fonte
strip
remove apenas espaços em branco à esquerda e à direita - ruby-doc.org/core-1.9.3/String.html#method-i-strip-21Olhe aqui:
fonte