Я пытаюсь получить каждую цифру из шаблона с помощью регулярных выражений.Сложность в том, что мне нужно использовать аргумент 'names', а количество цифр / полей неизвестно.
Например, я хочу сопоставить цифры в '[10,20,30]'
с regexp(...,'names')
таким образом, чтобына выходе получается структура с полями 'val1','val2','val3'
(со значениями 10,20 и 30).
Примерно так:
>> match = regexp('[10,20,30]',expr,'names');
>> match.val1
10
>> match.val2
20
Знаете ли вы какой-либо способ воспроизвести что-то вроде
match = regexp('[1,2,3]','^\[(?< val1>\d+),(?< val2>\d+),(?< val3>\d+)\]$','names');
но динамически, чтобы захватить любое число (> 0) цифр в шаблоне?
РЕДАКТИРОВАТЬ: Чтобы уточнить, я хочу проверитьpattern (цифры отделяются запятой внутри предложения в квадратных скобках, больше ничего) и возвращают цифры в том же вызове регулярного выражения.
Я мог бы использовать два вызова;сначала проверяя шаблон, а затем возвращая цифры.
Однако мой код ожидает один звонок.Для тех, кто заинтересован, я хочу получить больше от объекта inputParser и создать свой собственный вариант для него.У меня есть массив допустимых атрибутов для разных классов.Я хочу, чтобы один из них был размером входного аргумента, используя атрибут 'size[3,4]'
или 'size[3,4,2]'
или любое другое измерение.