2017-05-03 53 views
-2

我有一個哈希這樣的:紅寶石回報率分裂哈希

hash = {"user:**[email protected]** password:**azerty**"=>1, 
     "user:**[email protected]** password:**qwerty**"=>1} 

我怎麼能只提取用戶名(電子郵件)和每個元素的密碼單獨使用它。

最終與拆分方法。例如,如何從第二個:分割字符串?

我想有這樣的事情

Username Password 
[email protected] azerty 
[email protected] qwerty 
+0

@EricDuminil沒有,**只是用來在這裏大膽的**字** – media

回答

1

只是另一種方式來處理這種情況:

hash.keys.to_s.scan(/user:(\[email protected]\w+.\w+)\spassword:(\w+)/) 
#=> [["[email protected]", "azerty"], ["[email protected]", "qwerty"]] 

擊穿:

Example

+0

謝謝!簡單而高效。也感謝rubular示例 – media

0

考慮下面的代碼片段。它會給你一個觀點,你會知道,你應該從哪裏開始。

h.keys().map {|x| x.split(" ")}.each do |e| 
    puts "#{e.first.split(":").last} #{e.last.split(":").last}" 
end 

# [email protected] azerty 
# [email protected] qwerty 
0
hash.each { |x,y| puts x.split(" ").to_s.gsub("user:", "").to_s.gsub("password:", "") } 
# ["[email protected]", "azerty"] 
# ["[email protected]", "qwerty"] 
+1

雖然這段代碼片段是受歡迎的,並可以提供一些幫助,它會[[如果包括一個解釋大大改善](//meta.stackexchange.com/q/114762)*如何解決問題。沒有這些,你的答案就沒有什麼教育價值了 - 記住,你正在爲將來的讀者回答這個問題,而不僅僅是現在問的人!請編輯您的答案以添加解釋,並指出適用的限制和假設。 –

0

。利用拆分

hash.each do |key, _val| 
    puts key.split.map { |s| s.split(':').last }.join(' ') 
end