Kafka 排除要订阅的主题

时间:2021-04-15 13:06:11

标签: apache-kafka kafka-consumer-api

目前我正在使用这个“正则表达式”来消耗多个 topcis:^device-*

这个正则表达式让我订阅

device-gnt-q100-a
device-gnt-q100-a-commands
device-ant-q100-b
device-ant-q100-b-commands
device-ant-q535-a
device-dnq-qpo-def
device-dnq-qpo-def-commands
device-gda-qpp001-xyz
device-gda-qpp001-xyz-commands

是否可以以某种方式排除所有以 -commands 结尾的主题?

尝试没有成功:

^(?!device-\w*-commands)device-*
^(?!.*[-]commands$)device-.*$

2 个答案:

答案 0 :(得分:0)

这应该有效:^(?!device-\w*-commands)device-*

答案 1 :(得分:0)

librdkafka 使用的正则表达式库中有一个 bug,它在负前瞻时失败。 我找到了一个适用于我的案例的解决方案,尽管它在丑陋的一面:

^device-.*([^s]|[^d]s|[^n]ds|[^a]nds|[^m]ands|[^m]mands|[^o]mmands|[^c]ommands)$