それぞれの項目は (半角スペース)のデリミタで接続されています。 これがAmazonS3サーバーアクセスログの形式定義になります。 項目ごとに分割する デリミタが(半角スペース)であるため、単純に半角スペースでSplitすればよいかというと、当然のことながらそうは問屋がおろしません。単純にSplitしただけでは、日時, User-Agent, Request URI など"(ダブルクオーテーション)で囲まれてる中の空白まで検出してしまいます。 やり方はいくつかあるかと思いますが、自分は 正規表現 を利用したマッチング処理を行うような手法でアプローチしてみました。 正規表現を定義する あまり厳密な正規表現は行いません。あくまで間違えずに各要素を認識できれば良いという妥協の元条件を作成していきます。正規表現といいつつも分かりやすい簡易な記述でいきましょう。 *2 各要素のマッチング条件を作成し
![[AWS][Java] AmazonS3のサーバーアクセスログを解析する [正規表現] | DevelopersIO](https://cdn-ak-scissors.b.st-hatena.com/image/square/ae1831085634f040d8ea87c65585c41d4de216bc/height=288;version=1;width=512/https%3A%2F%2Fdevio2023-media.developers.io%2Fwp-content%2Fuploads%2F2014%2F05%2FAmazon_S3.png)