私はregexの初心者です。異なるTomcatのログエントリの正規表現パターン
私はTomcatのアクセスログファイルから次の行を持っている場合:
123.45.67.89 - - [27/10月/ 2000:09:27:09 -0400] \ "GET /java/javaResources.html HTTP
次のパターンは、まったく同じように見えるエントリでうまく動作します(例:上:
ただし、すべてのログエントリが上記のように表示されるわけではなく、時には9個のフィールドが含まれている場合もあります。 9フィールドエンティティの例:
82.132.139.79 - [2011年7月14日:18:52:44 +0100] "GET /〜roger/cpp/introans.htm HTTP/1.1" 200 11195 "http ://www.dcs.bbk.ac.uk/~roger/cpp/intro3.htm "" Mozilla/5.0(iPhone; U; Mac OS XのようなCPU iPhone OS 4_2_1;私たちは、IP、日付、時刻、およびURLのみに興味があります。AppleWebKit/533.17.9(GeckoのようなKHTML)バージョン/ 5.0.2 Mobile/8C148 Safari/6533.18.5
。 のみにかかわらず、フィールドの数のログエントリからエントリを一致させるための検索パターンがありますか?
9フィールドの例を挙げることはできますか?他の2つのフィールドは何ですか?そしてそれらはどこですか? – NorthGuard
inTideがあります - 他の2つのフィールドの位置やその位置が異なる場合、それらの位置が異なる場所を使用する必要があります。次に、いくつかのフィールドだけに興味がある場合は、気にしないグループで非キャプチャグループ '(?:。*?)'を使います。そして、順番に、あなたは$ 1、$ 2、$ 3を持っています。 – stslavik