具有负前瞻性的Regex,跨多行

  • 本文关键字:Regex 前瞻性 regex
  • 更新时间 :
  • 英文 :


我有麻烦获得适当的正则表达式为我当前的任务。我需要所有CURDEPTH(0)值,不需要SYSTEM。

我尝试这个演示:

(?:(?!SYSTEM)[sS])*?CURDEPTH(d+)

的例子:

5724-H72 (C) Copyright IBM Corp. 1994, 2021.
Starting MQSC for queue manager QM.NAME

1 : DISPLAY QL(*) CURDEPTH
AMQ8409I: Display Queue details.
QUEUE(DLQ)                              TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(VALUE)       TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SOME.OTHER.VALUE)    TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(VALUABLE_VALUE)            TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(ANOTHER_VALUE)         TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(LAST.VALUE)                        TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(CENSORED_VALUE)      TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(QM.TEST)                       TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.ADMIN.ACCOUNTING.QUEUE)    TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.ADMIN.ACTIVITY.QUEUE)      TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.ADMIN.CHANNEL.EVENT)       TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.ADMIN.COMMAND.EVENT)       TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.ADMIN.COMMAND.QUEUE)       TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.ADMIN.CONFIG.EVENT)        TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.ADMIN.LOGGER.EVENT)        TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.ADMIN.PERFM.EVENT)         TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.ADMIN.PUBSUB.EVENT)        TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.ADMIN.QMGR.EVENT)          TYPE(QLOCAL)
CURDEPTH(1)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.ADMIN.STATISTICS.QUEUE)    TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.ADMIN.TRACE.ACTIVITY.QUEUE)
TYPE(QLOCAL)                            CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.ADMIN.TRACE.ROUTE.QUEUE)   TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.AMQP.COMMAND.QUEUE)        TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.AUTH.DATA.QUEUE)           TYPE(QLOCAL)
CURDEPTH(117)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.BROKER.ADMIN.STREAM)       TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.BROKER.CONTROL.QUEUE)      TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.BROKER.DEFAULT.STREAM)     TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.BROKER.INTER.BROKER.COMMUNICATIONS)
TYPE(QLOCAL)                            CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.CHANNEL.INITQ)             TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.CHANNEL.SYNCQ)             TYPE(QLOCAL)
CURDEPTH(2)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.CHLAUTH.DATA.QUEUE)        TYPE(QLOCAL)
CURDEPTH(3)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.CICS.INITIATION.QUEUE)     TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.CLUSTER.COMMAND.QUEUE)     TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.CLUSTER.HISTORY.QUEUE)     TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.CLUSTER.REPOSITORY.QUEUE)
TYPE(QLOCAL)                            CURDEPTH(2)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.CLUSTER.TRANSMIT.QUEUE)    TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.DDELAY.LOCAL.QUEUE)        TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.DEAD.LETTER.QUEUE)         TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.DEFAULT.INITIATION.QUEUE)
TYPE(QLOCAL)                            CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.DEFAULT.LOCAL.QUEUE)       TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.DOTNET.XARECOVERY.QUEUE)   TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.DURABLE.SUBSCRIBER.QUEUE)
TYPE(QLOCAL)                            CURDEPTH(1)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.HIERARCHY.STATE)           TYPE(QLOCAL)
CURDEPTH(2)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.INTER.QMGR.CONTROL)        TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.INTER.QMGR.FANREQ)         TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.INTER.QMGR.PUBS)           TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.INTERNAL.REPLY.QUEUE)      TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.INTERNAL.REQUEST.QUEUE)    TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.PENDING.DATA.QUEUE)        TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.PROTECTION.ERROR.QUEUE)    TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.PROTECTION.POLICY.QUEUE)   TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.REST.REPLY.QUEUE)          TYPE(QLOCAL)
CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.RETAINED.PUB.QUEUE)        TYPE(QLOCAL)
CURDEPTH(50)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.SELECTION.EVALUATION.QUEUE)
TYPE(QLOCAL)                            CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(SYSTEM.SELECTION.VALIDATION.QUEUE)
TYPE(QLOCAL)                            CURDEPTH(0)
AMQ8409I: Display Queue details.
QUEUE(VEN_IG_REPLY)                     TYPE(QLOCAL)
CURDEPTH(0)
One MQSC command read.
No commands have a syntax error.
All valid MQSC commands were processed.

如果支持向后看断言中的量词,则可以检查前一行不包含SYSTEM.,然后匹配CURDEPTH(digits)

(?<!^.*bSYSTEM..*n.*)CURDEPTH(d+)

Regex演示


另一个选项是使模式更具体,并使用捕获组。

您可以从一个特定的模式开始匹配,然后匹配所有不以特定匹配和您想要匹配的内容开头的行。

在模式的末尾,捕获匹配中应该包含的内容。

^AMQd.*(?:n(?!AMQd|.*?bSYSTEM.).*)*ns*(CURDEPTH(d+))

Regex演示

最新更新