Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Stringクラス > each
each(rs = $/) {|line| ... } -> self
[permalink][rdoc]each_line(rs = $/) {|line| ... } -> self
lines(rs = $/) {|line| ... } -> self
each(rs = $/) -> Enumerable::Enumerator
each_line(rs = $/) -> Enumerable::Enumerator
lines(rs = $/) -> Enumerable::Enumerator
文字列中の各行に対して繰り返します。 行の区切りは rs に指定した文字列で、 そのデフォルト値は変数 $/ の値です。 各 line には区切りの文字列も含みます。
rs に nil を指定すると行区切りなしとみなします。 rs に空文字列 "" を指定すると「パラグラフモード」になり、 改行コードが 2 つ以上連続するところで文字列を分割します (つまり空行で分割します)。
例:
"aa\nbb\ncc\n".each_line do |line| p line end # => "aa\n" # => "bb\n" # => "cc\n" p "aa\nbb\ncc\n".lines.to_a # => ["aa\n", "bb\n", "cc\n"] p "aa\n".lines.to_a # => ["aa\n"] p "".lines.to_a # => [] s = "aa\nbb\ncc\n" p s.lines("\n").to_a #=> ["aa\n", "bb\n", "cc\n"] p s.lines("bb").to_a #=> ["aa\nbb", "\ncc\n"]