Используйте следующее для сопоставления строки, содержащей нажатие одной кнопки:
^(a|b|start)(\d+%)?(\d+(s|ms))?$
Я изменил \d*
на \d+
, чтобы указать, что по крайней мере один di git требуется перед %
или s|ms
. Я добавил $
в конце, чтобы оно не совпадало, если после матча есть что-то лишнее.
Чтобы сопоставить их последовательность, поместите группу вокруг всего, кроме якорей, и позвольте этому повторяться.
^((a|b|start)(\d+%)?(\d+(s|ms))?)+$
DEMO