@ Накилон правильно показывает scan
с регулярным выражением, однако вам даже не нужно рисковать в страну регулярных выражений, если вы не хотите:
s = "123--abc,123--abc,123--abc"
s.split(',')
#=> ["123--abc", "123--abc", "123--abc"]
s.split(',').inject([]) { |a,s| a << s.split('--'); a }
#=> [["123", "abc"], ["123", "abc"], ["123", "abc"]]
Возвращает массив массивовЭто удобно, если у вас есть несколько вхождений, и вам нужно просмотреть / обработать их все.
s.split(',').inject({}) { |h,s| n,v = s.split('--'); h[n] = v; h }
#=> {"123"=>"abc"}
Возвращает хеш, который, поскольку элементы имеют одинаковый ключ, имеет только уникальное значение ключа.Это хорошо, когда у вас есть куча дубликатов ключей, но вы хотите уникальные.Его недостаток возникает, если вам нужны уникальные значения, связанные с ключами, но это, похоже, другой вопрос.