gpt4 book ai didi

regex - 如何排除 中的模式以获得流畅的配置?

转载 作者:行者123 更新时间:2023-12-02 11:53:39 25 4
gpt4 key购买 nike

除了ma​​tch中的一个模式,我想输出全部为null。我知道有一些方法可以通过 @labels 来做到这一点,但我确实想在 ma​​tch 中排除模式。

我想这样做:

<match {all tags except **events**}>

我做了什么:

我知道我可以像这样在匹配中使用 Ruby 表达式:

<match #{tag.match(/^.*event.*$/) ? "fake_tag" : "**"}>
@type null
</match>

逻辑:“如果当前标签有模式 - 设置 fake_tag 以跳过此匹配,否则设置 ** 输出全部为 null”

但是这个表达式不起作用,因为 ENV 中没有变量 $tag。据我了解,Ruby 表达式不能使用 ${tag} 之类的配置变量。

也许我可以在匹配步骤之前设置环境变量?

像这样:

<filter **event**>
#{ENV["FLUENTD_TAG"] = ${tag}}
</filter>

<match #{FLUENTD_TAG.match(/^.*event.*$/) ? "fake_tag" : "**"}>
@type null
</match>

这些是我的想法,但也许有更简单的方法。

问题是 - 如何在 ma​​tch 中排除模式? :-)

最佳答案

放下一个,留下其他一切:

<match what.you.want.to.drop>
@type null
</match>
<match **>
# process everything else
</match>

除了一个以外的所有东西:

<match what.you.want.to.stay>
# process here or send to a label
</match>
<match **> # Optional block. It will be dropped anyways if no other matches, but with a warning printed to a fluentd log.
# Drop everything else explicitly to avoid warning.
@type null
</match>

关于regex - 如何排除 <match> 中的模式以获得流畅的配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57981063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com