You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kafka Connect RegexRouter转换正则表达式不生效问题咨询

问题原因分析

Kafka Connect的RegexRouter转换使用Java标准正则表达式语法,不存在额外特殊限制,你遇到的不生效问题来源于正则本身的匹配逻辑缺陷:

  • 原正则(\w*.)(\w*\d+)(.*)的第一个分组\w*.中,\w仅能匹配字母、数字、下划线,若topic首段包含横杠等其他合法topic字符会直接匹配失败;同时未转义的.会匹配任意字符,可能导致分组错位。
  • 第二个分组\w*\d+强制要求中间段必须以数字结尾,只要目标段不符合该规则,整个正则就不会命中,RegexRouter会直接保留原topic名称,不做任何修改。
适配性解决方案

你需要提取点分隔topic名称的第二段内容,可使用如下通用配置,适配任意前缀、后缀内容的三段及以上点分隔topic格式:

transforms=ReplaceField,RenameField,RemoveString
transforms.RemoveString.type=org.apache.kafka.connect.transforms.RegexRouter
transforms.RemoveString.regex=^[^.]+\.([^.]+)\..*$
transforms.RemoveString.replacement=$1

正则逻辑说明

  • ^[^.]+\.匹配topic开头到第一个.的所有前缀内容
  • ([^.]+)捕获第一个.和第二个.之间的所有内容,即你需要的bar_1这类中间段
  • \..*$匹配第二个.到topic末尾的所有后缀内容
  • 替换为$1即直接使用捕获到的中间段作为最终传入的topic名称

内容的提问来源于stack exchange,提问作者Chris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 11:18:00