正则表达式捕获无限群组

时间:2015-02-06 08:31:00

标签: regex capturing-group

我需要一点帮助。

所以我有字符串:
{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]+)"),但它只捕获了第一个参数 - “名称”:/

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

在这里,您需要使用\G按顺序进行连续字符串匹配。 \h匹配任何水平空白字符。

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

DEMO