2015-02-06 2 views
1

여기 좀 도와주세요.
{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]+)")이지만, 그것은 단지 첫 번째 PARAM 캡처 - "이름":/

어떤 도움이 평가됩니다.Regexp 캡쳐 무제한 그룹

+0

사용하고있는 언어는 무엇인가? –

+0

PHP를 사용하고 있습니다. –

+0

시도 만'(( [\ w] +) = "(? [])") ' –

답변

1

여기서 연속 문자열 일치를 수행하려면 \G을 순서대로 사용해야합니다. \h은 가로 공백 문자와 일치합니다.

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

DEMO

+0

그 트릭을 할거야. 감사! –