Tengo una cadena en Ruby, s
(por ejemplo) que podría tener cualquiera de las terminaciones de línea estándar (\n
, \r\n
, \r
). Quiero convertir todos esos a \n
s. ¿Cuál es la mejor manera?Normalización de terminaciones de línea en Ruby
Esto parece un problema súper común, pero no hay mucha documentación al respecto. Obviamente hay soluciones crudas fáciles, pero ¿hay algo incorporado para manejar esto?
Las soluciones elegantes, idiomáticas-Ruby son las mejores.
EDIT: se dio cuenta de que ^M
y \r
son lo mismo. Pero todavía hay tres casos. (Ver wikipedia.)
Dos cosas: debe poner \ r \ n primero en la expresión regular o de lo contrario nunca coincidirá (porque cualquier cosa que de otra forma coincidiría b \ r \ n se corresponderá primero con \ r). Y '\ n' == "\\ n", mientras que lo que quiere es "\ n". – sepp2k
Cambie las comillas simples por comillas dobles. De lo contrario, no funciona como se esperaba. –
Parece que todos estamos en la misma página :) –