如何在logstash中使用gsub将包含下划线的字符串部分转换为方括号

jq6vz3qz  于 2022-12-09  发布在  Logstash
关注(0)|答案(1)|浏览(184)

例如,我想将Hello_1_.Bye转换为Hello [1]. Bye请注意,[1](即括号内的)仅包含数字
我一开始用的是这样的东西,但没有用。

filter {
  mutate {
    gsub => ["String", "*_\D_.*", "*[\D].*"] //Note that String here could be Hello_1_.Bye, Hello_2_.Bye etc.
  }
 }

但是得到这个错误

:exception=>#<RegexpError: target of repeat operator is not specified: /*_\D_*/>

谢谢你的帮助

yhqotfr8

yhqotfr81#

我建议使用以下版本:

filter {
  mutate {
    gsub => ["Hello_1_.Bye", "([^_]+)_(\d+)_(\.\w+)", "\1[\2]\3"]
  }
}

这里有一个regex demo,显示替换工作正常。

相关问题