2010-11-13 66 views
1

我有以下的代碼:紅寶石不正確陣列管理

nonce = data.scan(/nonce="(.*)"/) 

data是一個字符串,字符串的匹配片被assigend到隨機數變量,自動成爲數組。 現在,如果我

puts nonce[0] 

我會得到我的價值正確打印:

51d8852d 

但如果使用方法:

puts "final string #{md1}:#{nonce[0]}:#{md2}" 

輸出將是:

df49f55acfd9d21837fd840644f251b4:["51d8852d"]:3b7718806908d2a4456086be7daba94ccd36ea19fd2bfa80ae41fa8be23433b7 

但不應該有任何括號ets或duoble引號,我應該只獲取數組的值。 它應該是這樣的:

df49f55acfd9d21837fd840644f251b4:51d8852d:3b7718806908d2a4456086be7daba94ccd36ea19fd2bfa80ae41fa8be23433b7 

能否請你建議我該如何解決這個問題呢? 由於

的Dawid

回答

3

當使用與捕獲組掃描,結果是數組的數組,所以要使用nonce[0][0]。你很困惑,因爲你的第一個例子提供nonce[0],這是一個數組,puts,它通過打印出每個元素來處理數組。如果你做puts nonce[0].class,你會看到...

+0

謝謝,你是對的,那工作:) – Dawid 2010-11-13 01:16:10

+0

或使用nonce.flatten [0]。最終的結果是一樣的,所以它確實取決於看起來更好。 – 2010-11-13 02:39:21