我有这样的语法
{{ id, key1:value1; key2:value2; keyn:valuen; }}
我需要把它捡起来,这样我就有了匹配的
Array (
[0] => id
[1] => key1,
[2] => value1
...
)
我现在拥有的是这个
'{'{'s*('d+)(?:,'s*(?:('$'w+)':(.*?);)+)?'s*'}'}
用于输入
{{ 1, $user:John Doe; $dgd:brat; }}
返回matches:
0: (1)
1: ($user)
2: (John Doe; $dgd:brat)
,我希望
matches:
0: (1)
1: ($user)
2: (John Doe)
3: ($dgd)
4: (brat)
谢谢。
更新# 2
你可以使用这个正则表达式:
(?=[^}]*}})(?(?!'w)'s+)'K([$]?[^[:punct:]]+)
Regex Live demo
PHP Live demo
/([^'s]+):([^';]+);/g
就行了