Wie tun Sie Schleife durch eine mehrzeilige Zeichenfolge in Ruby?
-
03-07-2019 - |
Frage
Pretty einfache Frage von erstmaligen Ruby-Programmierern.
Wie Sie eine Schleife durch eine Platte von Text in Ruby? Jedesmal, wenn ein Newline erfüllt ist, mag ich die innere Schleife neu starten.
def parse(input)
...
end
Lösung
str.each_line do |line|
#do something with line
end
Andere Tipps
Was sagte Iraimbilanja.
Oder Sie könnten die Zeichenfolge an neuen Linien aufgeteilt:
str.split(/\r?\n|\r/).each { |line| … }
Beachten Sie, dass each_line
die Zeilenvorschub Zeichen hält, während split
sie isst.
Beachten Sie die regex ich hier verwendet wird, wird von allen drei Zeilenende Formate kümmern. String#each_line
trennt Linien durch das optionale Argument sep_string
, die standardmäßig auf $/
, die sich standardmäßig einfach "\n"
.
Schließlich, wenn Sie wollen komplexere Zeichenfolgenanalyse zu tun, überprüft die eingebaute in StringScanner Klasse.
Sie können auch tun mit mit einem beliebigen Muster:
str.scan(/\w+/) do |w|
#do something
end
str.each_line.chomp do |line|
# do something with a clean line without line feed characters
end
Ich denke, diese Pflege der Zeilenumbrüche nehmen.