Regex Logstash过滤器:使用正则表达式比较时间

Regex Logstash过滤器:使用正则表达式比较时间,regex,logstash,elastic-stack,logstash-grok,Regex,Logstash,Elastic Stack,Logstash Grok,我在logstash过滤器中使用此代码来比较时间,但不起作用 if [timecheck] =~ /.*((\[0\]\[0-6\]):\[0-5\]\[0-9\]:\[0-5\]\[0-9\])|((\[1\]\[2-9\]|2\[0-3\]):\[0-5\]\[0-9\]:\[0-5\]\[0-9\]).*/ { mutate { add_tag => "OVERTIME" } } else if [timecheck] =~ /.+/ { mutate {

我在logstash过滤器中使用此代码来比较时间,但不起作用

if [timecheck] =~ /.*((\[0\]\[0-6\]):\[0-5\]\[0-9\]:\[0-5\]\[0-9\])|((\[1\]\[2-9\]|2\[0-3\]):\[0-5\]\[0-9\]:\[0-5\]\[0-9\]).*/ {
  mutate {
    add_tag => "OVERTIME"
  }
}
else if [timecheck] =~ /.+/ {
  mutate {
    add_tag => "WORKING-HOURS"
  }
}
else {
  mutate { add_tag => "NO-TIMECHECK-MATCH" }
}
logstash工作,但正则表达式不匹配。始终输入工作时间,因为它不是空的


(我在regexr.com上试用了regex,效果很好)

不要逃避方括号

  if [timecheck] =~ /(([0][0-6]):[0-5][0-9]:[0-5][0-9])|(([1][8-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])/ {
    mutate {
      add_tag => "OVERTIME"
      add_field => { "time-work" => "OVERTIME" }
    }
  }
  else if [timecheck] =~ /.+/ {
    mutate {
      add_tag => "WORKING-HOURS"
      add_field => { "time-work" => "WORKING-HOURS" }
    }
  }
  else {
    mutate { add_tag => "NO-TIMECHECK-MATCH" }
  }  

不确定是否支持此语法,但正则表达式不应在方括号前包含反斜杠。