我有一个清单:
key1:this is an{example{of an example}I like} key2:this is another example key3: this is secondary{example{of an example}}
我需要分开键并按差异比较键的值,所以我想得到的结果是:
{
:key1 => 'this is an [example[of an example]I like]',
:key2 => 'this is another example',
:key3 => 'this is secondary[example[of an example]]'
}
Ruby或Regex可能会出现类似这样或类似内容吗?
答案 0 :(得分:0)
你去了:
def parse_into_hash(s)
keys = s.scan(/\w+:/.map{|k| k.chomp(":")}
values = s.split(/\w+:/).select(&:present?)
Hash[keys.zip values]
end
这不是防弹。如果您在值中有冒号或者任何值是空字符串,它可能会失败,但它适用于您的示例,并且应该让您开始。如果需要,可以使其更加强大。