Я пытаюсь разобрать строки времени и перекодировать их в объект, который я назову time module
. Это просто объект словаря с полным раскрытием времени.
Дело в том, что мне нужно сопоставить строку, состоящую из числа и единицы времени. В настоящее время я пытаюсь найти соответствие этому регулярному выражению:
/^(([1-9][0-9]*)(y|m|w|d|h|min|s))+$/g
.
Мне нужно, чтобы он выдавал каждое совпадение. Поэтому, если я передаю эту строку: 12y12m12w12d12h12min12s
- она должна вернуть что-то вроде этого массива:
[
'12y12m12w12d12h12min12s', // Matching string
'12y',
'12',
'y',
'12m',
'12',
'm',
'12w',
'12',
'w',
'12d',
'12',
'd',
'12h',
'12',
'h',
'12min',
'12',
'min',
'12s',
'12',
's',
index: 0,
input: '12y12m12w12d12h12min12s',
groups: undefined
]
Вместо этого она возвращает только последний блок:
[
'12y12m12w12d12h12min12s',
'12s',
'12',
's',
index: 0,
input: '12y12m12w12d12h12min12s',
groups: undefined
]
Могу ли я сделать эта вещь, используя regex
? Как?