【发布时间】:2018-09-04 12:53:06
【问题描述】:
我正在尝试创建类似 smarty 的类似解析器。对于非常小的代码部分,并且不想实现巨大的 smarty-like 解析器。
我想出的是:
(?:([a-zA-Z0-9]+)=(?:([^\v '"]+)|"(.*?)"|'(.*?)')|([a-zA-Z0-9]+))
在https://regex101.com/r/l5FI5f/2/ 上看起来不错。每个匹配都是 1 或 2 个条目 + 完整匹配。
当我复制 PHP 代码时,事情看起来不一样了...
array (size=5)
0 => string 'xddss='asdasda'' (length=15)
1 => string 'xddss' (length=5)
2 => string '' (length=0)
3 => string '' (length=0)
4 => string 'asdasda' (length=7)
不确定索引 2 和 3 来自哪里...
【问题讨论】:
-
@WiktorStribiżew 英雄!想让它回答吗? :)
标签: php pcre preg-match-all