日期:2014-05-16  浏览次数:20442 次

正则语法问题求解释
JScript code

var a = 'aabbccdd';
alert(a.replace(/(a.*)(?=c)/gi,'-')); //  -cdd
alert(a.replace(/(a.*)?(?=c)/gi,'-')); //  --cdd
alert(a.replace(/(a.*?)(?=c)/gi,'-')); //  -ccdd
alert(a.replace(/(a.*?)?(?=c)/gi,'-')); //  --c-cdd



求解释以上结果为什么是这样。。。。

------解决方案--------------------
第二个非贪婪 aabbccdd aabbc》替换aabb 变成 ccdd 继续替换 cc》替换成c 结果 --cdd
------解决方案--------------------
探讨

第一个,应该是贪婪模式匹配 a.*,并在最后一个 c 字符前才停止,我大概是这么理解
第二个,我理解不能。。。
第三个,应该是非贪婪模式匹配 a.*,并在第一个 c 字符前停止,应该是。。。
第四个,彻底思维停止。。。。