2016-10-18 5 views
1

おはよう! 私はこの形式のログがあります。Fluentdソースログ形式正規表現

[14-10-2016 00:00:04,004 INFO WebService:1603] [172.16.1.10] [0000077000013] [ID=N0000077000013] [N=147639237688] REQUEST getStatus 

私はこの正規表現に思い付いた:

/(?<time>\d{1,2}-\d{1,2}-\d{4} \d{1,2}:\d{1,2}:\d{1,2},\d{3}) (?<message1>[=]+) .(?<ID>ID=\w*) .(?<N>N=\w*) (?<messages>.*)/ 

私は日付を特定したい場合は、ID =、ID、N、および最後の部分までINFOから一部、 Fluentdは私に "パターン不一致"を返す。正規表現の各部分は、流暢な正規表現のテストサイトで別々に動作しています。

正規表現とは何ですか? ありがとうございます。

+0

'?

+0

Wiktorありがとうございます、それは働いています。 –

答えて

1

あなたが使用すること

(?<time>\d{1,2}-\d{1,2}-\d{4} +\d{1,2}:\d{1,2}:\d{1,2},\d{3}) +(?<message1>[A-Z]+) .*\[ID=(?<ID>\w+)] +\[N=(?<N>\w+)] (?<messages>.*) 

IDNグループのためにregex demo

私は1回以上の繰り返しに一致するように、スペースの後に+を追加したノート、および調整後のグループの境界を参照してください。また

、あなたのmessage1グループパターン[=]+マッチ1+ =記号は、あなたがそこにINFO文字列を持っていながら。私は[A-Z]+に変更し、1つ以上の大文字のASCII文字に一致させました。グループmessage1IDの間のテキストがあるので

そして最後には、あなたはこのように、私は.*(改行記号以外の任意の0+文字)を使用し、それらの文字を消費することを確認する必要があります。