タブで区切られたファイル、TSVをRubyでパースしたいのですが、うまくいきません。
どうも、タブ自体をRubyが認識していないように見えます……。
環境
$ ruby -v ruby 2.3.1p112 (2016-04-26) [x86_64-linux-gnu]
dev.csv
HD\s?598,HD 598 DCE\s?120,DCE 120
dev.tsv
HD\s?598 HD 598 DCE\s?120 DCE 120
script.rb
Encoding.default_external = 'UTF-8' require 'csv' CSV.foreach('dev.tsv', { :col_sep => "\t" }) do |fg| puts "[#{fg[0]}] #{fg[1]}: #{fg[2]}" end # require 'csv' CSV.foreach('dev.csv' ) do |fg| puts "[#{fg[0]}] #{fg[1]}: #{fg[2]}" end # 実行結果 #=> [HD\s?598 HD 598] : #=> [DCE\s?120 DCE 120] : #=> [HD\s?598] HD 598: #=> [DCE\s?120] DCE 120:
そもそもタブを認識しているのか?と思い、以下のようにしてみるも、やはり認識していないように見える……
text = File.open( File.expand_path("../dev.tsv", __FILE__) ).read if text =~ /\t/ ; puts "y" ; end # => 出力なし # タブが含まれているなら"y"が出力されるはず。
原因がさっぱりわかりません…。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/28 14:37
2018/08/28 15:19
2018/08/28 15:41
2018/08/28 15:56
2018/08/29 01:06
2018/08/29 10:10
2018/08/29 13:49