代码之家  ›  专栏  ›  技术社区  ›  Spurious

regex与mt940语句中的最后一行不匹配:86:tag

  •  0
  • Spurious  · 技术社区  · 7 年前

    我有以下regex: https://regex101.com/r/GMuKFI/2

    我想也能匹配 :86: 标签行(如果我没有弄错的话,最多可以有4行)。目前,我没有匹配最后两行,只有前两行。我试过用各种组合 \S\s 等等,但是我不能达到我在一个地方匹配这两行。我试着积极向前看,没有用。

    我的RegEx: :([0-9]{2}[A-Z]?):(.*(?:\r?\n)?(?:(?!:[0-9]{2}[A-Z]?:).*)?)

    还有一个条件:它不应该与 -} 在最后一行。忘了加这个了。

    1 回复  |  直到 7 年前
        1
  •  1
  •   revo shanwije    7 年前

    你就快到了,只需要一个量词来匹配下一行:

    :([0-9]{2}[A-Z]?):((?:.*[\r\n]*(?:(?!:[0-9]{2}[A-Z]?:|-}).*))*)
                      ^^^^                               ^^^    ^^^ 
    

    live demo here