イベント ログからいくつかの文字列からデータを取得したいと考えています。すべてのイベント文字列は [0r(1)2[000p[040qe1w3h162[020t*] で始まります。新しいものに遭遇すると、最後の文字列セットを解析してデータを取得する必要があります。イベントの例が示されています。また、別のイベントの開始を除いて、いくつかのイベントが区切り文字なしで続きます。
[0r(1)2[000p[040qe1w3h162[020t*881*11/11/2010*12:24*
*EVENT STARTED*
[020t 12:24:06 SMARTCARD ENTERED
11\11\10 12:24 10390011
123456789098765432 6598
INVALID TRANSACTION, PLEASE CONTACT
ADMIN FOR ADVICE
-----------------------------------
[020t 12:24:52 FILE STACKED
[020t 12:24:59 FILE PRESENTED 0,5,0,0
[020t 12:25:03 FILE TAKEN
11\11\10 12:25 10390011
123456789098765432 6599
WITHDRAW FILES10.00
[000p[040q(1 *6599*1*E*000050000,M-00,R-10200
-----------------------------------
[020t 12:25:34 SMARTCARD TAKEN
[020t 12:25:38 EVENT ENDED
アクティビティごとに日付と時刻を 1 つの変数として抽出したいと考えています。例えば
Activity= EVENT STARTED
Activity time/date= 11/11/2010 12:24
Activity= SmartCard inserted
Activity time/date= 12:24:06
下にリストされたコードでイベントの開始を識別するコードを書いたと思います。
import java.util.regex.*;
public class Test
{
public static void main(String args[])
{
String line = "[0r(1)2[000p[040qe1w3h162[020t*882*11/11/2010*12:26*";
String[] parts = line.split("\\*");
String date = parts[2];
String time = parts[3];
System.out.println("date=" + date + ", time=" + time);
}
}
ありがとう