正则表达式(模式)属性分隔

时间:2016-03-11 09:55:38

标签: regex logstash grok

我正在使用logstash过滤器grok,我需要一个模式(regEx)用于此表达式:

  

面包车= FpP2N410E%252FbhMY%252FBvfstlbL6YmtlPKiQ%253D&安培;颜色= 7和; HV = 2701

我尝试了这个解决方案,但“颜色”并没有从“面包车”中分离出来。

  

((颜色=%{NUMBER:颜色})|(VAN =%{GREEDYDATA:VAN}))及((颜色=%{NUMBER:颜色})|(   HV =%{NUMBER:HV}))

我需要OR,因为属性的顺序不同。

2 个答案:

答案 0 :(得分:0)

解决方案是定义新模式VAN [A-Za-z0-9%] +

  

((颜色=%{NUMBER:颜色})|(VAN =%{VAN:VAN}))及((颜色=%{NUMBER:颜色})|(   HV =%{NUMBER:HV}))

答案 1 :(得分:0)

不要重新发明轮子 - kv {}过滤器是为这样的东西设计的,它允许参数按任何顺序排列。