#1 凌风
$pattern_map = array(
‘<{*([\s\S]+?)*}>’ => ‘‘,
‘<{(.?)}>’ => ‘‘,
‘(<{((?!}>).)?)($[\w"'[]]+?).(\w+)(.?}>)’ => ‘$1$3['$4']$5’,
请教一下最后一行的这个开头为什么要用 (<{((?!}>).)?),而不是直接用 (<{.*?)
2020-09-08 16:03:19
#2 jake
如果一行里面有两个<{}>,不加这个会匹配很多的。
2020-09-08 20:41:17
#3 凌风
问题是好像你加了(.*?}>)就表示遇到}>就已经结束了,不必用?!来排除,我测试了一下也没问题
2020-09-09 00:29:45
#4 jake
在线的匹配是js的,和php匹配不太一样。
我是直接用模板在php里面匹配的,单元测试了各种情况,这段应该就是应对多个标签同一行的情况,不过具体的测试用例已经不在了。
2020-09-09 07:32:10