使用正则去匹配[00:00.92]这样的字符串
let timeReg = /\[(\d*:\d*\.\d*)\]/;
let str = "[00:00.92]";
let res = timeReg.exec(str);
console.log(res);
正则中加() res输出为
0: "[00:00.92]"
1: "00:00.92"
为什么匹配出两个?
不加(),则只匹配一个
0: "[00:00.92]" ?
这是为什么?而用一些正则测试的网站,无论是否加()都只匹配一个[00:00.92]?
一个
()
是一个捕获组,用于将某个子串获取出来以备后续使用js 正则
exec
的匹配结果第一个是完整匹配,后面是从左往右的每个捕获组如匹配
[00:00.92]
中的00
和00.92
,可以这样写如果只想用括号,但不想获取出来,怎么办?用
(?:pattern)
转为非捕获组