2009-03-03 11 views
5

Encuentro que la función each de Ruby es un poco confusa. Si tengo una línea de texto, un bucle each me dará cada palabra delimitada por espacios en lugar de cada carácter individual.¿Cómo se analiza una línea de texto separada por tabulaciones en Ruby?

¿Cuál es la mejor manera de recuperar secciones de la cadena delimitadas por un carácter de tabulación? En este momento tengo:

line.split.each do |word| 
... 
end 

pero eso no es del todo correcto.

Respuesta

16

no estoy seguro de que entiendo su pregunta, pero si desea dividir las líneas en caracteres de tabulación, se puede especificar que como un argumento para dividir:

line.split("\t").each ... 

o puede especificar como una expresión regular:

line.split(/\t/).each ... 

Cada básicamente sólo itera a través de todos los elementos de una matriz, y se dividió produce una matriz de una cadena.

+0

Está bien para carcasa simple. Pero no es * eso * simple. Hay una cantidad de casos límite cuando el contenido proviene de una fuente externa. Los saltos, secuencias de escape, citas, etc. son muy diferentes entre las diferentes aplicaciones. –

Cuestiones relacionadas