true - times ruby
¿Cómo recorre una cadena multilínea en Ruby? (4)
Lo que dijo Iraimbilanja.
O podrías dividir la cadena en nuevas líneas:
str.split(//r?/n|/r/).each { |line| … }
Tenga en cuenta que each_line
mantiene los caracteres de alimentación de línea, mientras que split
come.
Tenga en cuenta que la expresión regular que utilicé aquí se ocupará de los tres formatos de final de línea. String#each_line
separa las líneas por el argumento opcional sep_string
, que por defecto es $/
, que de manera predeterminada es "/n"
simplemente.
Por último, si desea hacer un análisis de cadenas más complejo, consulte la clase incorporada StringScanner.
Pregunta bastante simple de un programador de Ruby por primera vez.
¿Cómo recorre una losa de texto en Ruby? Cada vez que se cumple una nueva línea, quiero reiniciar el ciclo interno.
def parse(input)
...
end
También puedes hacer con cualquier patrón:
str.scan(//w+/) do |w|
#do something
end
str.each_line do |line|
#do something with line
end
str.each_line.chomp do |line|
# do something with a clean line without line feed characters
end
Creo que esto debería encargarse de las nuevas líneas.