有个正则表达式re = /<tpl\b[^>]*>((?:(?=([^<]+))\2|<(?!tpl\b[^>]*>))*?)<\/tpl>/,是为了匹配最内层子模板,如:
<tpl>
<p>Name:{name}</p><p>Kids: <tpl for="kids">
<tpl if="age == 1"><p>{name}</p></tpl></tpl></p>
</tpl>我想问下为什么要加上\2
/<tpl\b[^>]*>((?:([^<]+)|<(?!tpl\b[^>]*>))*?)<\/tpl>/
这样写应该也没问题呀,求教。PS:我改过之后使用regexbuddy测试不通过,用match tracer测试可行,但效率极低,要等好久才匹配成功。语法上看不出什么问题,所以我怀疑是哪里引起的效率问题,望高手解答解我心中困惑。
<tpl>
<p>Name:{name}</p><p>Kids: <tpl for="kids">
<tpl if="age == 1"><p>{name}</p></tpl></tpl></p>
</tpl>我想问下为什么要加上\2
/<tpl\b[^>]*>((?:([^<]+)|<(?!tpl\b[^>]*>))*?)<\/tpl>/
这样写应该也没问题呀,求教。PS:我改过之后使用regexbuddy测试不通过,用match tracer测试可行,但效率极低,要等好久才匹配成功。语法上看不出什么问题,所以我怀疑是哪里引起的效率问题,望高手解答解我心中困惑。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货