CSVファイルのデータを扱いたい。 でも「,」を含む値も取り扱いたい。。。ということがあったのでメモです。。。 CSVの仕様によると、 各値はダブルクォートで囲まれることがある ダブルクォート内ではコンマや改行はエスケープされる ダブルクォート内でダブルクォートをエスケープするにはダブルクォートを二重に書く とのことなので、(参考/RFC4180 http://www.ietf.org/rfc/rfc4180.txt) ダブルクォートのエスケープが面倒くさいけど 「,」を含むデータを取り扱うにはダブルクォートで囲めばよいそうです。 今回は、ダブルクォート内に改行が含まれない1行のCSVデータを読み込み、各値を配列で返す処理を考えます。 簡単に考えるために1行の文字を先頭から見ていき、遷移する状態として次の5状態を考えます 初期状態 各データ先頭文字の状態、データ状態のいずれかへ遷移 データ