【发布时间】:2013-11-15 02:15:35
【问题描述】:
我正在使用配置文件解析器,我需要帮助将 key: value 对解析为哈希。
我的数据格式为:key: value key2: value2 another_key: another_value。
到目前为止,我有
形式的代码 line = line.strip!.split(':\s+')
返回一个数组,格式为
["key:value"]["key2: value2"]["another_key: another_value"]
如何将这些数组转换成单个散列的形式
{key=>value, key2=>value2, another_key=>another_value}
我不确定键:值对是否需要采用字符串的形式。最容易使用的。
感谢您的帮助!
这是我找到的解决方案:
line = line.strip.split(':')
hash = Hash[*line]
导致输出{"key"=>"value"}, {"key2"=>"value2"}
【问题讨论】:
-
看看String#partition。这非常适合将每个字符串拆分为键和值,或者在冒号的每一侧使用带有捕获组的正则表达式。
-
很好,String#partition 是一个有用的方法!谢谢@CarySwoveland