我是flume的新手,找不到关于正则表达式的足够信息—这就是我需要帮助的原因。
我想做一个正则表达式过滤拦截器。
我有一些类似的事件:
[20151010][type1][stuff]
[20151011][type2][stuff]
[20151012][type3][stuff]
[20151013][type4][stuff]
[20151014][type1][stuff]
[20151015][type2][stuff]
[20151016][type3][stuff]
我想做一个regex过滤器,包括type1和type2。
结果应该是:
[20151010][type1][stuff]
[20151011][type2][stuff]
[20151014][type1][stuff]
[20151015][type2][stuff]
有可能只做一个过滤器吗?或者我应该把信息复合起来,做两个不同的过滤器?
2条答案
按热度按时间xriantvc1#
或者在regex中是好的和容易的:只要使用
|
. 所以你想要的东西看起来像:ie3xauqp2#
使用regexinterceptor,可以使用或运算符过滤事件,如下所示,
顺便说一句,这就是regex在scala/java中的工作原理
图案
匹配器1
匹配器2
匹配器3
如果你看一下他们的实现代码,他们正在使用
matcher.find()
```scala> val pattern = Pattern.compile(".type1.|.type2.")
pattern: java.util.regex.Pattern = .type1.|.type2.
scala> val matcher = pattern.matcher("[20151010][type1][stuff]")
matcher: java.util.regex.Matcher = java.util.regex.Matcher[pattern=.type1.|.type2. region=0,24 lastmatch=]
scala> val matches = matcher.find()
matches: Boolean = true