以前接觸到過正則的貪婪問題,但現在想想還不是很清楚,所以做了個複習和總結:
.*貪婪模式 .*?非貪婪模式 (點比較小)
如:
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的位置停止