Javascript js regexp-组优先级

Javascript js regexp-组优先级,javascript,regex,grouping,Javascript,Regex,Grouping,比如说,有多个正则表达式 + (?:BBB)?CCC 在单个表达式中组合为组-/^(第一)(第二)$/ 两组人不应该互相“了解”(意思是——我不能改变他们的表达方式) 目前的结果是: ["AAA BBB CCC", "AAA BBB", "CCC"] 预期结果: ["AAA BBB CCC", "AAA", "BBB CCC"] 如何对组进行优先级排序,使BBB最终位于第二个组中?通过在+旁边添加不情愿的量词?来创建第一个+(位于捕获组中) ^(.+?) ((?:BBB )?CCC)$

比如说,有多个正则表达式

  • +
  • (?:BBB)?CCC
  • 在单个表达式中组合为组-
    /^(第一)(第二)$/

    两组人不应该互相“了解”(意思是——我不能改变他们的表达方式)

    目前的结果是:

     ["AAA BBB CCC", "AAA BBB", "CCC"]
    
    预期结果:

     ["AAA BBB CCC", "AAA", "BBB CCC"]
    

    如何对组进行优先级排序,使
    BBB
    最终位于第二个组中?

    通过在
    +
    旁边添加不情愿的量词
    来创建第一个
    +
    (位于捕获组中)

    ^(.+?) ((?:BBB )?CCC)$
    

    ^(.+?) ((?:BBB )?CCC)$
    
    > /^(.+?) ((?:BBB )?CCC)$/.exec('AAA BBB CCC');
    [ 'AAA BBB CCC',
      'AAA',
      'BBB CCC',
      index: 0,
      input: 'AAA BBB CCC' ]