gpt4 book ai didi

javascript - 了解非捕获组的正则表达式

转载 作者:行者123 更新时间:2023-12-02 23:53:50 25 4
gpt4 key购买 nike

我对下面的正则表达式模式有点困惑 link :

(?:x)

Matches 'x' but does not remember the match. The parentheses are called non-capturing parentheses, and let you define subexpressions for regular expression operators to work with. Consider the sample expression /(?:foo){1,2}/. If the expression was /foo{1,2}/, the {1,2} characters would apply only to the last 'o' in 'foo'. With the non-capturing parentheses, the {1,2} applies to the entire word 'foo'. For more information, see Using parentheses below.

我无法理解这两点:

  1. 考虑示例表达式 /(?:foo){1,2}/。如果表达式为 /foo{1,2}/,则 {1,2} 字符仅适用于最后一个“o”在“foo”中。

  2. 使用非捕获括号时,{1,2} 适用于整个单词“foo

最佳答案

实际上,据我所知,非捕获组与您当前的问题无关,并且以下两种模式都会匹配相同的内容:

/(?:foo){1,2}/
/(foo){1,2}/

括号告诉正则表达式引擎您希望将数量规则 {1,2} 应用到整个数量。如果没有括号,数量默认应用于紧邻的前一个字符 o:

/foo{1,2}/

这将匹配 foofooo

关于javascript - 了解非捕获组的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55509668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com