Сопоставление групп Ruby Regexp, назначение переменных в 1 строке

В настоящее время я пытаюсь преобразовать строку в несколько переменных.Пример строки:

ryan_string = "RyanOnRails: This is a test"

Я сопоставил ее с этим регулярным выражением, с 3 группами:

ryan_group = ryan_string.scan(/(^.*)(:)(.*)/i)

Теперь, чтобы получить доступ к каждой группе, мне нужно сделать что-то вроде этого:

ryan_group[0][0] (first group) RyanOnRails
ryan_group[0][1] (second group) :
ryan_group[0][2] (third group) This is a test

Это кажется довольно смешным, и мне кажется, что я делаю Что-то не так. Я ожидал, что смогу сделать что-то вроде этого:

g1, g2, g3 = ryan_string.scan(/(^.*)(:)(.*)/i)

Возможно ли это? Или есть способ лучше, чем я?

115
задан ryanjones 16 February 2012 в 00:50
поделиться