Web サーバーのログからいくつかの情報を抽出しようとしていますが、あまり構造化されていないため、問題が発生しました。一致させようとしています:
例 1 :
2011-11-29 11:30:23,685 DEBUG [my.fully.qualified.package.Service] Added Action Item: M= 2 Success
例 2 :
2011-11-29 11:30:23,685 DEBUG [my.fully.qualified.package.Service] Added Action Item: M=10 Success
この正規表現は、例 1 で機能します。
(\d\d\d\d-\d\d-\d\d)\s[\d|:]+,\d+\s([A-Z]+)\s\[(.+)\]\s.+:\sM=\s(\d).+
最初のグループは日付、2 番目はログ レベル、3 番目はクラス名、3 番目は の値ですM
。
例 1 では M= の後に数字の前にスペースがあり、他の例ではスペースがないため、この正規表現が機能していないことに気付いたかもしれません。
私は次のようなことを試しましM=[\s|d]+
たが、私が要求したいくつかの文字が一致しました。これらの例の両方を1つの正規表現と一致させる方法を誰かが提案していますか?