2013-03-19 56 views
0

給定的字符串正確的密鑰和值我有一個列表:如何解析爲使用Ruby

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或正則表達式?

+0

你想返回什麼?哈希?一個字符串? – Mischa 2013-03-19 14:42:15

+0

我希望它是散列。我目前試圖使用拆分和正則表達式除以「:」和「{}」,就我所知 – lifejuggler 2013-03-19 14:51:12

+0

我編輯了你的問題,以便所需的返回值看起來像一個散列。目前還不清楚你的所有方括號是什麼意圖。隨時再次編輯,以明確。 – Mischa 2013-03-19 15:08:11

回答

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 

這不是防彈。如果冒號中有冒號,或者其中任何值爲空字符串,它可能會失敗,但它對您的示例有效,並且會讓您開始。如果你需要,你可以使它更強大。

+0

謝謝!我將以你的榜樣爲基礎 – lifejuggler 2013-03-21 14:10:28