我有一个空格分隔值的文件:
Paul Smith 12345678
John Alex Doe 23456789
Lucy S Alena Blissett 34567890
需要将其转换为这样的哈希:
{"Paul Smith"=>"12345678", "John Alex Doe"=>"23456789", "Lucy S Alena Blissett"=> "34567890"}
我可以关注these tips获取CSV格式,但有点被TSV和新行字符所困扰。
感谢您的帮助!
答案 0 :(得分:6)
假设格式不是以制表符分隔的值,而是以空格分隔:
s = <<_
Paul Smith 12345678
John Alex Doe 23456789
Lucy S Alena Blissett 34567890
_
s.scan(/(.+) (.+)/).to_h
结果:
{
"Paul Smith" => "12345678",
"John Alex Doe" => "23456789",
"Lucy S Alena Blissett" => "34567890"
}
答案 1 :(得分:1)
使用String#scan并将结果数组转换为哈希:
File.read('file').scan(/^(.*)\s+([^\s]+)\r?$/).to_h
# => {"Paul Smith"=>"12345678", "John Alex Doe"=>"23456789", "Lucy S Alena Blissett"=>"34567890"}