Kafka转换忽略正则表达式



我正在尝试使用kafka转换。RemoveString在将主题传递到连接器之前修改主题的名称。我的主题名看起来像这样

foo.bar_1.baz

我想提取bar_1并将其作为主题名称传入。从我可以告诉我的正则表达式是正确的,但kafka变换似乎不喜欢它-

transforms=ReplaceField,RenameField,RemoveString
transforms.RemoveString.type=org.apache.kafka.connect.transforms.RegexRouter
transforms.RemoveString.regex=(w*.)(w*d+)(.*)
transforms.RemoveString.replacement=$2

我可以告诉RemoveString正在使用,因为当我将正则表达式更改为以下时,我得到了我想要的结果,但这对我的用例来说是相当限制的-

transforms.RemoveString.regex=(foo.)(.*)(.baz)
transforms.RemoveString.replacement=$2

在Kafka转换中正则表达式的使用是否有某种限制?

发现问题,反斜杠必须转义,使用我改进的正则表达式,它现在看起来像这样-

(\w*)\.(\w+)\.(.*)

您在RegexRouter中有错字,您错过了R

transforms=ReplaceField,RenameField,RemoveString
transforms.RemoveString.type=org.apache.kafka.connect.transforms.RegexRouter
transforms.RemoveString.regex=(w*.)(w*d+)(.*)
transforms.RemoveString.replacement=$2

最新更新