繁体   English   中英

捕获组正则表达式 Javascript 匹配返回两个值为什么?

[英]Capturing Group Regex Javascript match returns two values why?

为什么"abcabcabc".match(/(abc){3}/);

返回两个条目["abcabcabc", "abc"] “abcabcabc”和“abc”

相似地,

["1234", "1234"]

每个正则表达式周围都有一个隐式捕获组,它存储在结果 0 中。

第二个结果来自您的捕获组(abc) 大多数正则表达式实现只保留该捕获组的最后一个匹配项。

/(abc){3}/ :

  • 第一捕获组(abc){3}

    {3}量词 — 正好匹配 3 次

    重复捕获组只会捕获最后一次迭代。 在重复组周围放置一个捕获组以捕获所有迭代,或者如果您对数据不感兴趣,则使用非捕获组代替。

    abc逐字匹配字符abc (区分大小写)

所以第一个值是整个匹配,即"abcabcabc"

第二个值是(abc)捕获的最后一次迭代,即"abc"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM