2017-06-13 171 views
0

我在logstash過濾器中使用此代碼來比較時間,但不起作用。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正則表達式,做工精良)

+1

不確定此語法是否受支持,但您的正則表達式不應在方括號前包含反斜槓。 –

回答

0

不要逃避方括號。

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" } 
    }