以下にテキストのリストを示します。これはEVEOnlineと呼ばれる人気のあるオンラインゲームからのものであり、基本的にゲーム内で人を殺すとメールで送信されます。PHPを使用してこれらを解析し、関連するすべての情報を抽出するツールを構築しています。表示されているすべての情報が必要になります。関連するカプセル化されたデータにうまく分割するためにクラスを作成しています。
2008.06.19 20:53:00
Victim: Massi
Corp: Cygnus Alpha Syndicate
Alliance: NONE
Faction: NONE
Destroyed: Raven
System: Jan
Security: 0.4
Damage Taken: 48436
Involved parties:
Name: Kale Kold
Security: -10.0
Corp: Vicious Little Killers
Alliance: NONE
Faction: NONE
Ship: Drake
Weapon: Hobgoblin II
Damage Done: 22093
Name: Harulth (laid the final blow)
Security: -10.0
Corp: Vicious Little Killers
Alliance: NONE
Faction: NONE
Ship: Drake
Weapon: Caldari Navy Scourge Heavy Missile
Damage Done: 16687
Name: Gistatis Tribuni / Angel Cartel
Damage Done: 9656
Destroyed items:
Capacitor Power Relay II, Qty: 2
Paradise Cruise Missile, Qty: 23
Cataclysm Cruise Missile, Qty: 12
Small Tractor Beam I
Alloyed Tritanium Bar, Qty: 2 (Cargo)
Paradise Cruise Missile, Qty: 1874 (Cargo)
Contaminated Nanite Compound (Cargo)
Capacitor Control Circuit I, Qty: 3
Ballistic Deflection Field I
'Malkuth' Cruise Launcher I, Qty: 3
Angel Electrum Tag, Qty: 2 (Cargo)
Dropped items:
Ballistic Control System I
Shield Boost Amplifier I, Qty: 2
Charred Micro Circuit, Qty: 4 (Cargo)
Capacitor Power Relay II, Qty: 2
Paradise Cruise Missile, Qty: 10
Cataclysm Cruise Missile, Qty: 21
X-Large Shield Booster II
Cataclysm Cruise Missile, Qty: 3220 (Cargo)
Fried Interface Circuit (Cargo)
F-S15 Braced Deflection Shield Matrix, Qty: 2
Salvager I
'Arbalest' Cruise Launcher I
'Malkuth' Cruise Launcher I, Qty: 2
正規表現を使用してデータを解析することを考えていますが、これにどのようにアプローチしますか?メールを1行の文字列に折りたたむか、配列の各行を解析しますか?問題は、説明すべきいくつかの異常があることです。
まず、「関係者:」セクションは動的であり、以下と同様の構造を持つ多くの人々を含めることができますが、コンピューター制御の敵も犠牲者を撃つと、「名前」と「ダメージ」のみに短縮されます上記のように、フィールドを完了しました(Gistatis Tribuni / AngelCartel)。
次に、「破棄」アイテムと「ドロップ」アイテムは動的であり、メールごとに長さが異なります。また、貨物にあるかどうかにかかわらず、数量と数量を取得する必要があります。
アプローチのアイデアは大歓迎です。
