捕获组正则表达式Javascript匹配返回两个值为什么?
为什么 匹配(/(abc){3}/)代码> 返回两个条目捕获组正则表达式Javascript匹配返回两个值为什么?,javascript,regex,Javascript,Regex,为什么 匹配(/(abc){3}/) 返回两个条目[“abcabc”,“abc”]?“abc”和“abc” 同样地 [“1234”,“1234”]每个regexp周围都有一个隐式捕获组,该组存储在结果0中 第二个结果来自您的捕获组(abc)。大多数regexp实现只保留该捕获组的最后一个匹配项 : 第一捕获组(abc){3} {3}量词-精确匹配3次 重复捕获组将只捕获最后一次迭代。在重复组周围放置一个捕获组以捕获所有迭代,或者如果您对数据不感兴趣,则使用非捕获组 abc逐字匹配字符abc(区
[“abcabc”,“abc”]
?“abc”和“abc”
同样地
[“1234”,“1234”]
每个regexp周围都有一个隐式捕获组,该组存储在结果0中
第二个结果来自您的捕获组(abc)
。大多数regexp实现只保留该捕获组的最后一个匹配项
:
- 第一捕获组
(abc){3}
量词-精确匹配3次 重复捕获组将只捕获最后一次迭代。在重复组周围放置一个捕获组以捕获所有迭代,或者如果您对数据不感兴趣,则使用非捕获组{3}
逐字匹配字符abc
(区分大小写)abc
“abcabc”
第二个值是由
(abc)
捕获的最后一次迭代,即“abc”
,因为第一个值是整个正则表达式匹配的值,下面的每一个值都对应一个匹配组。您是在问TC39委员会为什么决定这样做(我们无法回答),还是在问这些值的含义(这在?(abc){3}
中有一个abc
序列位于第一个捕获组,也是最后一个捕获组。