开发者社区> 问答> 正文

Canal的Filter支持前缀匹配吗?

比如schema是actionlog+四位数字,table是actionlog+八位数字,filter能匹配这种吗?正则需要怎么写呢?

原提问者GitHub用户shijiebei2009

展开
收起
绿子直子 2023-05-09 10:53:59 122 0
2 条回答
写回答
取消 提交回答
  • 可以写,actionlog\d{4}.actionlog\d{8}

    原回答者GitHub用户fsh905

    2023-05-10 10:19:10
    赞同 展开评论 打赏
  • 随心分享,欢迎友善交流讨论:)

    Canal的Filter支持正则表达式匹配,可以通过正则表达式匹配schema和table。

    对于schema是actionlog+四位数字的情况,可以使用如下正则表达式进行匹配:

    ^actionlogd{4}$

    解释:

    ^ 表示匹配字符串的开头

    actionlog 表示匹配字符串中的actionlog

    d 表示匹配一个数字

    {4} 表示匹配前面的d四次

    $ 表示匹配字符串的结尾

    对于table是actionlog+八位数字的情况,可以使用类似的正则表达式进行匹配:

    ^actionlogd{8}$

    同样地,这个正则表达式会匹配以actionlog开头,后面跟着8位数字的字符串。

    需要注意的是,在Canal的Filter中,正则表达式需要使用Java的正则表达式语法,因此需要对一些特殊字符进行转义。

    2023-05-09 12:02:20
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载