0

ログ ファイルに表示される例外行を照合しようとしています。ログ ファイルの形式は、「[タイムスタンプ] スレッド ID (英数字 8 桁) アプリケーション名 (任意の長さの英数字) E (例外メッセージを示すため)」です。

したがって、サンプルのログ例外メッセージは次のようになります。

"[11/27/12 22:33:02:635 EST] 0000009a myApplication E " E の後には何でも来ることができます。

PHP preg_match を使用してこれに一致する正規表現を見つけるのに問題があります

どんな助けでも大歓迎です。

乾杯

4

2 に答える 2

0

次のことを試してください。

'/^\[[^\]]+\]\s\w{8}\s[^\s]+\sE.*/m'

末尾の「m」は、先頭のウェッジがログの行の先頭と一致することを保証します。

もちろん、このソリューションは、「E」を除いてすべてのログエントリが非常に似ている場合にのみ機能します。タイムスタンプのないログエントリがある場合、失敗する可能性があり、sputnickのようなより詳細な式を探す必要があります。

于 2013-03-18T23:10:07.237 に答える
0

この正規表現を試してください(グループをキャプチャして):

/^\[\d+/\d+/\d+\s+\d+:\d+:\d+:\d+\s+\w+\]\s+\w{8}\s+\w+\s+E(.*)/
于 2013-03-18T23:14:18.477 に答える