Rubyで複数行の文字列をどのようにループしますか?
-
03-07-2019 - |
質問
初めてのRubyプログラマーからの非常に簡単な質問。
Rubyでテキストのスラブをどのようにループしますか?改行に遭遇するたびに、内側のループを再開したい。
def parse(input)
...
end
解決
str.each_line do |line|
#do something with line
end
他のヒント
イランビランジャが言ったこと。
または、新しい行で文字列を分割できます:
str.split(/\r?\n|\r/).each { |line| … }
each_line
は改行文字を保持し、 split
はそれらを食べることに注意してください。
ここで使用した正規表現は、3つの行末形式すべてを処理します。 String#each_line
は、オプション引数 sep_string
で行を区切ります。デフォルト引数は $ /
で、デフォルト引数は" \ n"です。
単純に。
最後に、より複雑な文字列解析を行う場合は、組み込みのStringScannerクラスを確認してください。
任意のパターンでも実行できます:
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
これで改行を処理する必要があると思います。
所属していません StackOverflow