-1

イベント ログからいくつかの文字列からデータを取得したいと考えています。すべてのイベント文字列は [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);
    }
}

ありがとう

4

1 に答える 1