在 javascript 中使用正则表达式时,会创建^\[(.*?)\]$|(.*)
一个空组 ( undefined
)。我猜这是由于 OR 尝试第一场比赛并在失败时创建一个空组,或者与第二组反之亦然。有什么办法可以在javascript中使用 regex.exec(string) 时只返回一个组?
我的测试代码如下;
var regex = /^\[(.*?)\]$|(.*)/;
console.log(regex.exec("[test]")); // ["[test]", "test", undefined]
console.log(regex.exec("test")); // ["test", undefined, "test"]