你如何将这个:"x[a=1,b=2,c=3]"
(一个字符串)转换为ruby中的{ x => {'a'=>1, 'b'=>2, 'c'=>3} }
这样的哈希?
答案 0 :(得分:1)
我假设第一个键(x
)实际上应该是一个字符串。
def foo(str)
key, rest = str.split("[")
{ key => Hash[rest.gsub("]","").split(",").map { |eqn| k, v = eqn.split("="); [k, v.to_i] }] }
end
foo("x[a=1,b=2,c=3]")
# => {"x"=>{"a"=>1, "b"=>2, "c"=>3}}