2016-03-05 3 views
-1

У меня есть данные:Использование регулярных выражений в group_by

data = [["/","201408","41"],["/","201409","35"],["/","201410","59"],["/","201411","50"],["/","201412","79"],["/","201501","97"],["/","201502","85"],["/","201503","518"],["/","201504","251"],["/","201505","748"],["/","201506","916"],["/","201507","1008"],["/","201508","449"],["/","201509","235"],["/","201510","195"],["/","201511","229"],["/","201512","202"],["/","201601","142"],["/","201602","134"],["/","201603","17"]] 

Я хочу, чтобы сгруппировать их по году, но я не знаю, как я могу использовать регулярное выражение в group_by. Я должен выглядеть так:

grouped = data.group_by { |row| row[1] } 

но что дальше? строка [1] строка - YYYYMM

+0

Где находится "год"? – sawa

+0

строка [1] строка YYYYMM –

+0

Напишите так в вопросе. – sawa

ответ

1

Зачем вам регулярное выражение? Разве это не то, что вы ищете?

data.group_by { |d| d[1][0..3] } 
0

Я предпочитаю ответ галлюцинаций, но если вы все еще хотите использовать регулярные выражения:
data.group_by { |row| row[1].match(/^(\d{4})/).captures[0] }

не очень чистый, но это работает.

Смежные вопросы