Мне нужна небольшая помощь здесь.
Поэтому у меня есть строка:
{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]+)")
, но она захватывает только первый из параметров - «имя»:/
Любая помощь будет оценена.Regexp захват неограниченных групп
1
A
ответ
1
Здесь вы должны использовать \G
для непрерывного совпадения строк. \h
соответствует любому горизонтальному символу пробела.
(?:^\{(?<type>\w+)|\G)\h*((?<param>\w+)="(?<value>\w+)")
+0
Это будет трюк. Благодаря! –
, что это язык, который вы используете? –
Я использую PHP. –
попробуйте только '((? [\ w] +) =" (? [\ w] +) ")' –