当我运行时
var episode_pattern = /(?:EPISODE\:\s*\#)([0-9]*)/g;
console.log(episode_pattern.exec("EPISODE: #3"));
我在比赛中找回了“EPISODE: #3”和“3”。
但是使用 (?:
我希望在匹配数组中只得到“3”。
最佳答案
返回数组的第一个元素(元素 0)始终是整个 匹配字符串。换句话说,如果您根本没有组,或者如果所有 您的组都是非捕获的,您将返回元素 0。如果您添加组而不更改正则表达式,您仍然会返回元素 0 中相同的整体匹配,然后组从元素 1 开始。
关于返回 Javascript 正则表达式非捕获组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21791483/