Tengo esta cadena:
"some text\nandsomemore"
Necesito quitarle "\ n". He intentado
"some text\nandsomemore".gsub('\n','')
pero no funciona. ¿Cómo lo hago? Gracias por leer.
Necesita usar "\n"not '\n'en su gsub. Las diferentes comillas se comportan de manera diferente.
Las comillas dobles "permiten la expansión de caracteres y la interpolación de expresiones, es decir. te permiten usar caracteres de control escapados como \npara representar su verdadero valor, en este caso, nueva línea , y permiten el uso de #{expression}para que puedas tejer variables y, bueno, prácticamente cualquier expresión ruby que te guste en el texto.
Mientras que, por otro lado, las comillas simples 'tratan la cadena literalmente, por lo que no hay expansión, reemplazo, interpolación o lo que sea.
En este caso particular, es mejor utilizar el método String .deleteo .trel método para eliminar las nuevas líneas .
tres una mejor opción para esta tarea, pero como digo, pensé que era mejor señalar la diferencia entre comillas simples y dobles cuando respondí.Cuando desee eliminar una cadena, en lugar de reemplazarla, puede usar
String#delete(o su equivalente mutadorString#delete!), por ejemplo:xahora es igual a "foofoo"En este caso específico
String#deletees más legible quegsubya que en realidad no está reemplazando la cadena con nada.fuente
deleteno es destructivo como se indica aquí. Devuelve una nueva cadena.Si desea o no le importa que se eliminen todos los espacios en blanco iniciales y finales de su cadena, puede usar el
stripmétodo.como se menciona aquí .
editar El título original de esta pregunta era diferente. Mi respuesta es para la pregunta original.
fuente
stripsolo elimina los espacios en blanco inicialesNo necesitas una expresión regular para esto. Utilice tr:
fuente
replacesimplemente cambia la cadena a una nueva, como asignación de variable; mientras quetres una búsqueda y reemplazo global carácter por carácter.uso
chompostripfunciones de Ruby:fuente
stripsolo elimina los espacios en blanco inicialesMira aquí:
fuente