我需要一点帮助。
所以我有字符串:
{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]+)")
,但它只捕获了第一个参数 - “名称”:/
任何帮助将不胜感激。
答案 0 :(得分:1)
在这里,您需要使用\G
按顺序进行连续字符串匹配。 \h
匹配任何水平空白字符。
(?:^\{(?<type>\w+)|\G)\h*((?<param>\w+)="(?<value>\w+)")