与以下问题非常相似:Using Ruby, Reading a file, contains name/value pair into a hash
文件:
server1, jim, 22 server2, bob, 44
试过这个正则表达式:
Hash[*File.read('file.cfg').split(/[, \n]+/)]
但我得到: odd number of arguments for Hash (ArgumentError)
我试试这个:http : //rubular.com/r/BE6ZG2nTMw
有什么方法可以解决这个问题?问题是哈希初始化的方式还是我的正则表达式?
我想这是预期的结果:
File.readlines('/tmp/blah.cfg').map do |line|
line.split(',', 2).map(&:strip)
end.to_h
#⇒ {"server1"=>"jim, 22", "server2"=>"bob, 44"}
也可以将其余部分拆分为一个数组:
File.readlines('/tmp/blah.cfg').map do |line|
k, *v = line.split(',').map(&:strip)
[k, v]
end.to_h
#⇒ {"server1"=>["jim", "22"], "server2"=>["bob", "44"]}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句