如何使用gsub将包含下划线的部分字符串转换为logstash中的括号
Posted
技术标签:
【中文标题】如何使用gsub将包含下划线的部分字符串转换为logstash中的括号【英文标题】:How to convert part of a string that includes underscores to brackets in logstash with gsub 【发布时间】:2022-01-21 08:18:58 【问题描述】:我想转换,例如 你好_1_.再见 到 你好[1]。再见 注意[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_*/>
感谢您的帮助
【问题讨论】:
你可以使用"Hello_12_.Bye".sub(/_(\d+)_/) "[#$1]" #=> "Hello[12].Bye"
。
@CarySwoveland gsub
是 Logstash 配置文件行话中的 setting。在这种特殊情况下,它是mutate
过滤器模块的the gsub
setting。
【参考方案1】:
我建议使用这个版本:
filter
mutate
gsub => ["Hello_1_.Bye", "([^_]+)_(\d+)_(\.\w+)", "\1[\2]\3"]
这是一个regex demo,表明替换正在工作。
【讨论】:
以上是关于如何使用gsub将包含下划线的部分字符串转换为logstash中的括号的主要内容,如果未能解决你的问题,请参考以下文章