正则表达式与 MT940 语句中的最后一行不匹配:86: 标记



我有以下正则表达式:https://regex101.com/r/GMuKFI/2

我希望能够匹配:86:标语行的最后一行(如果我没记错的话,最多可以有 4 行(。目前,我没有匹配最后两行,只匹配前两行。我尝试使用各种组合使用Ss等。但是我无法达到与两条线相匹配的地步。我尝试了积极的前瞻性,但无济于事。

我的正则表达式::([0-9]{2}[A-Z]?):(.*(?:r?n)?(?:(?!:[0-9]{2}[A-Z]?:).*)?)

还有一个条件:它不应该与最后一行中的-}匹配。忘了添加这个。

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

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

在此处观看现场演示

最新更新