我有麻烦获得适当的正则表达式为我当前的任务。我需要所有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演示