正则?:匹配但是并不捕获
2019-12-08 本文已影响0人
郭海杰
let str = 'abc'
reg = /(?:a)(b)(c)/
/(?:a)(b)(c)/
var res = str.match(reg)
undefined
console.log(res)
//结果 ["abc", "b", "c", index: 0, input: "abc", groups: undefined]
//这里可以看到?: 代表的是匹配a但是并不捕获a,所以后面捕获到了b,c两个,而没有a
下面是测试结果:
image.png
"?=a" 匹配任何其后紧接指定字符串 n 的字符串
而(?:a) 则是匹配 'a' 但是并不捕获a