Это сводит меня с ума.Строка выглядит следующим образом:
actionname {componentOne, componentTwo, componentThree}
в этом примере я должен был соответствовать в группах actionname
, componentOne
, componentTwo
и componentThree
.Конечно, точное число"компонентов" в скобках Я не буду знать , это хотя бы один, но может быть несколько.
Я пытался:
\w+
начальный уровень, соответствует всем, включая actionname
.Это может соответствовать цели, но есть лучшие решения,
^actionname\s*{\s*(\w+)+\s*.*}
кровавый ад, соответствует только одному, в данном случае componentOne
, даже я использовал квантификатор для сопоставления группы (\w+)+
,
^actionname\s*{\s*(\w+)(:?\s*\,\s*(\w+)|\s*})
провал в этом суть.Я могу расширить совпадение до второго компонента, , но только декларативно , т.е. я не могу расширить группу до такого количества слов (разделенных ,
необязательными пробелами), как это может быть.Все представленные регулярные выражения с модификаторами гм .
Как получить правильный результат?
Отдельное спасибо хотя бы базовым объяснениям, а не только рабочему решению.