Я использую Java matcher, чтобы попытаться сопоставить следующее:
@tag TYPE_WITH_POSSIBLE_SUBTYPE -PARNAME1=PARVALUE1 -PARNAME2=PARVALUE2: MESSAGE
TYPE_WITH_POSSIBLE_SUBTYPE состоит из букв с точками.
Каждый параметр должен состоять из букв, а каждое значение должно состоять из цифр / букв. Может быть 0 или более параметров.
Сразу после последнего значения параметра следует точка с запятой, пробел, а остаток считается сообщением.
Все должно быть сгруппировано.
Мое текущее регулярное выражение (как литерал Java):
(@tag)[\\s]+?([\\w\\.]*?)[\\s]*?(-.*=.*)*?[\\s]*?[:](.*)
Однако я продолжаю получать все параметры как одну группу. Как мне получить каждого как отдельную группу, если это вообще возможно?
Я не так много работаю с регулярными выражениями, поэтому я всегда что-то напутал.