str.each_line do |line|
#do something with line
end
Ответ 2
То, что сказал Ириимуляня.
Или вы можете разбить строку на новые строки:
str.split(/\r?\n|\r/).each { |line| … }
Остерегайтесь, чтобы each_line сохранял символы перевода строки, а split ест их.
Обратите внимание, что регулярное выражение, которое я использовал здесь, позаботится о всех трех форматах окончания строки. String#each_line разделяет строки необязательным аргументом sep_string, который по умолчанию равен $/, который по умолчанию сам по себе равен "\n".
Наконец, если вы хотите выполнить более сложный синтаксический анализ строк, проверьте встроенный класс StringScanner.
Ответ 3
Вы также можете использовать любой шаблон:
str.scan(/\w+/) do |w|
#do something
end
Ответ 4
str.each_line.chomp do |line|
# do something with a clean line without line feed characters
end
Я думаю, что это должно заботиться о новых символах.