【问题标题】:Understanding regex of non capturing group了解非捕获组的正则表达式
【发布时间】:2019-04-04 07:00:41
【问题描述】:

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

(?:x)

匹配“x”但不记得匹配项。括号称为非捕获括号,您可以定义子表达式以供正则表达式运算符使用。考虑示例表达式/(?:foo){1,2}/。如果表达式为/foo{1,2}/,则{1,2} 字符将仅适用于'foo' 中的最后一个'o'。使用非捕获括号,{1,2} 适用于整个单词 'foo'。有关详细信息,请参阅下面的使用括号。

这两点我看不懂:

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

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

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

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

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

    括号告诉正则表达式引擎您希望数量规则{1,2} 应用于整个数量。没有括号,数量默认应用于紧接在前面的字符o

    /foo{1,2}/
    

    这将匹配 foofooo

    【讨论】:

    • "紧接前面的字符 o" 是我正在寻找的。谢谢
    猜你喜欢
    • 2018-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 2019-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多