2016-02-25 3 views
0

у меня есть следующие строки из файла журнала:Match по массиву и слово

"\\\"steps\\\"=\\u003e[5762.0, 0.0], \\\"minutes_sedentary\\\"=\\u003e[1390.0, 1440.0], \\\"minutes_lightly_active\\\"=\\u003e[23.0, 0.0], \\\"minutes_fairly_active\\\"=\\u003e[27.0, 0.0]}" 

Конечным результатом этого является то, в идеале хэш или массив, который выглядит следующим образом:

{ 
    "steps": [5762.0, 0.0], 
    "minutes_sedentary": [1390.0, 1440.0], 
    "minutes_lightly_active": [23.0, 0.0], 
    "minutes_fairly_active": [27.0, 0.0] 
} 

Я получил действительно взломанное решение gsub, пока у меня не будет всех слов, а затем gsub ищет числа, но он уже пропустил несколько краевых случаев (т. е. где десятичные значения могут варьироваться по длине). Я предполагаю, что есть лучший способ, но не удалось использовать String#match.

ответ

1

Этот шаблон фиксирует в двух группах элементы, которые вы хотите.

(\w+).*?(\[.*?\])

You can test it here

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