2017-09-04 185 views
-2

我有一個字符串,這是與空格隔開的數組:查找字符串特定數組中的元素

[ 
    "[AT0000 EUR 33.09 32.09 00.0]", 
    "[AT0001 EUR 32.34 31.00 00.0]", 
    "[AT0002 EUR 34.23 34.01 00.0]", 
] 

我想第一,每一行的第2個和第5位。這是如何完成的?

+4

請編輯以使您的「字符串數組」成爲有效的Ruby對象。請參閱答案以獲取指導。 –

回答

3

您可以split然後用values_at在一個特定的指數,以獲取值:

array = [ 
    "[AT0000 EUR 33.09 32.09 00.0]", 
    "[AT0001 EUR 32.34 31.00 00.0]", 
    "[AT0002 EUR 34.23 34.01 00.0]", 
] 

results = array.map do |element| 
    element.split.values_at(0, 1, 4) 
end 

puts results.inspect 
# => [["[AT0000", "EUR", "00.0]"], ["[AT0001", "EUR", "00.0]"], ["[AT0002", "EUR", "00.0]"]] 

,如果你不希望開放/末端括號([])包括您可以使用它們中的文本,因爲它們是這樣的:

results = array.map do |element| 
    element[/\[(.*)\]/, 1].split.values_at(0, 1, 4) 
end 

puts results.inspect 
# => [["AT0000", "EUR", "00.0"], ["AT0001", "EUR", "00.0"], ["AT0002", "EUR", "00.0"]] 
2

你想["AT0000", "EUR", "00.0"]

這可能是有選擇和with_index:

array = %w[AT0000 EUR 33.09 32.09 00.0] 
p array.select.with_index { |_, index| [0,1,4].include?(index) } 
# ["AT0000", "EUR", "00.0"] 
相關問題