.*是贪婪模式,.*?是懒惰模式,称非贪婪模式。话不多说,上代码:
一、.*
let a = 'aababaa';
let re = /a.*b/;
console.log(a.match(re)); //[ 'aabab', index: 0, input: 'aababaa', groups: undefined ]
二、.*?
let a = 'aababaa';
let re = /a.*?b/;
console.log(a.match(re)); // [ 'aab', index: 0, input: 'aababaa', groups: undefined ]
大家看出来区别了吧,带?的只要是匹配到值就不会继续向后匹配了,而不带问号的时候就会尽可能多的去匹配!