Sie können split
und dann values_at
verwenden, um die Werte zu einem bestimmten Index zu erhalten:
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]"]]
wenn Sie nicht wollen, die offen/Ende Klammern ([]
) enthalten Sie können nur mit dem Text innerhalb von ihnen als solche arbeiten:
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"]]
Bitte bearbeiten Sie, um Ihr "Array von Strings" zu einem gültigen Ruby-Objekt zu machen. Siehe die Antworten zur Orientierung. –