Ruby 2.2.0 リファレンスマニュアル > ライブラリ一覧 > csvライブラリ > CSVクラス > parse

singleton method CSV.parse

parse(str, options = Hash.new) {|row| ... } -> nil[permalink][rdoc]
parse(str, options = Hash.new) -> Array

このメソッドは文字列を簡単にパースすることができます。 ブロックを与えた場合は、ブロックにそれぞれの行を渡します。 ブロックを省略した場合は、配列の配列を返します。

[PARAM] str:
文字列を指定します。
[PARAM] options:
CSV.new のオプションと同じオプションを指定できます。


require 'csv'
require 'pp'

s = <<EOS
id,first name,last name,age
1,taro,tanaka,20
2,jiro,suzuki,18
EOS

pp CSV.parse(s)
# => [["id", "first name", "last name", "age"],
#     ["1", "taro", "tanaka", "20"],
#     ["2", "jiro", "suzuki", "18"]]

CSV.parse(s, headers: true).each do |row|
  p [row['first name'], row['age']]
end
# => ["taro", "20"]
#    ["jiro", "18"]


require "csv"

csv = "id|first name|last name|age\n1|taro|tanaka|20\n2|jiro|suzuki|18"
CSV.parse(csv, col_sep: '|') do |row|
  p [row[1], row[2]]
end
# => ["first name", "last name"]
# => ["taro", "tanaka"]
# => ["jiro", "suzuki"]