JS正则捕获的贪婪性

let str = '你好2019@2020中国';
// 正则捕获的贪婪性:默认情况下,正则捕获的时候,是按照当前正则所匹配的最长结果俩获取的
let reg = /\d+/g;
console.log(str.match(reg)); // ['2019', '2020']

// 在量词元字符后面设置?:取消捕获时候的贪婪性(按照正则匹配的最短结果来获取)
reg = /\d+?/g;
console.log(str.match(reg));  // ['2', '0', '1', '9', '2', '0', '2', '0']

问号在正则中的五大作用:
问号左边是非量词元字符:本身代表量词元字符,出现零到一次;
问号左边是量词元字符:取消捕获时候的贪婪性;
(?:)只匹配不捕获;
(?=)正向预查;
(?!)负向预查;

你可能感兴趣的:(JS正则捕获的贪婪性)