以前接触到过正则的贪婪问题,但现在想想还不是很清楚,所以做了个复习和总结:
.*贪婪模式 .*?非贪婪模式 (点比较小)
如:
var str="abc/def/abc";
var re=/.*(b)/g;
alert(str.match(re)); //abc/def/ab
.*(b)的匹配是先匹配的字符串的结尾,然后在字符串的末尾向前回溯一直到出现b的位置,得到匹配的结果.
而.*?会第一得到 ab 由于是非贪婪模式,先拿b去进行匹配,b匹配到第一个b的位置停止
以前接触到过正则的贪婪问题,但现在想想还不是很清楚,所以做了个复习和总结:
.*贪婪模式 .*?非贪婪模式 (点比较小)
如:
var str="abc/def/abc";
var re=/.*(b)/g;
alert(str.match(re)); //abc/def/ab
.*(b)的匹配是先匹配的字符串的结尾,然后在字符串的末尾向前回溯一直到出现b的位置,得到匹配的结果.
而.*?会第一得到 ab 由于是非贪婪模式,先拿b去进行匹配,b匹配到第一个b的位置停止