Возможно ли многократно захватывать группу в Regex
Я создаю универсальный парсер, потому способ о котором я буду говорить далее может показаться странным. Так надо. Передо мной стоит задача распарсить строку:
<a attrName1="attrValue1" attrName2="attrValue2">...</a>
Вопрос касается атрибутов. Дело в том что их может быть разное количество (от 0 до бесконечности). Если кратко то я написал примерно это:
<a (\w+="\w*"\s)> ...
Меня интересует группа захвата (\w+="\w*"\s). Как я и сказал выше, таких атрибутов может быть много, но написать (\w+="\w*"\s)* или (\w+="\w*"\s)+ не получится. Дело в том, что я хочу захватить все группы захвата что подразумеваются под * или +, но Regex это трактует как то, что мы хотим захватить одну группу при условии что послу нее могут идти похожие блоки. То есть:
Написав это:
<a (\w+="\w*"\s)+>
я надеюсь что Regex будет трактовать это как
<a (\w+="\w*"\s)(\w+="\w*"\s)(\w+="\w*"\s)(\w+="\w*"\s)(\w+="\w*"\s).....>
то бишь много групп захвата.
Но Regex это трактует как
<a (\w+="\w*"\s)\w+="\w*"\s\w+="\w*"\s\w+="\w*"\s\w+="\w*"\s.....>
всего 1 группа захвата.
Я знаю как можно получить все эти группы захвата инструментами #include <regex>, но вопрос в другом. Можно ли сделать такую штуку средствами самого Regex или он не рассчитан на подобные извращения?