正则表达式捕获无限组

Regexp capture unlimited groups

我需要一点帮助。

所以我有字符串:
{block name="something" param1="param" param2="param"}
有可能:
{block name="something"}
{block name="something" param1="value" sm="value" ng="value" um="param" .. and so on}

我需要的是捕获所有可能的参数。

到目前为止我能弄清楚的是 {(?<type>[\w]+) ((?<param>[\w]+)="(?<value>[\w]+)"),但它只捕获第一个参数 - "name":/

任何帮助将不胜感激。

这里需要使用\G才能进行连续的字符串匹配。 \h 匹配任何水平空白字符。

(?:^\{(?<type>\w+)|\G)\h*((?<param>\w+)="(?<value>\w+)")

DEMO