2017-06-13 13 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

角括弧をエスケープしていないため、常にWORKING-時間で入力してください。

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" } 
    } 
関連する問題