代码之家  ›  专栏  ›  技术社区  ›  vrintle Jake

无法在JavaScript regex中重用捕获组的模式

  •  1
  • vrintle Jake  · 技术社区  · 6 年前

    我的问题有点像 this question

    • 问题是
    • 它不包含任何JavaScript风格的regex模式,除了一个 只有 验证两级嵌套。
    • 里面只有一些 ,我不需要它,因为我正在努力学习Regex。

    我试图通过验证一个表达式来学习Regex” ".

    平衡括号是一个表达式,其中 ( )

    例如,以下表达式有效:

    (1+2)*(2+5)
    (1+2(3+4)-6)/(2+4)
    ((()))
    

    但是, (3+4()


    我正在使用JavaScript regex。所以,我试了下面的正则表达式。然而,它 doesn't worked out .

    ^(\((?:[^()]|\1*)\)[^()]*)+$
    

    但是,当我试着 PCRE worked out nicely .

    ^(\((?:[^()]|(?1))*\)[^()]*)+$
    

    这两种规则中唯一的语法差异是 第一组被重新使用 \1 在JS和 (?1) 在PCRE。我知道 不是一种 subroutine 选择 在JavaScript中出现,除了再次重复整个模式?

    variables 里面 RegExp 嵌套的 这样就排除了这个可能性。

    0 回复  |  直到 6 年前