当我跑步时
var episode_pattern = /(?:EPISODE\:\s*\#)([0-9]*)/g;
console.log(episode_pattern.exec("EPISODE: #3"));
我在比赛中取回了“EPISODE:#3”和“3”
但是使用(?:
我期望只在匹配数组中获得“3”。
答案 0 :(得分:4)
返回数组的第一个元素(元素0)始终是整个匹配的字符串。换句话说,如果您根本没有组,或者 all 您的组都是非捕获的,那么您将返回元素0.如果您添加组而不更改正则表达式,您仍然可以返回元素0中的整体匹配相同,然后组从元素1开始。