3

次の正規表現を使用しています。

INT (?:[+-]?(?:[0-9]+))
VALUE ([0-9]+)
SPACE \s*
DATA .*?
USERNAME [a-zA-Z0-9._-]+
YEAR (?>\d\d){1,2}
MONTHNUM (?:0?[1-9]|1[0-2])
MONTHDAY (?:(?:0[1-9])|(?:[12][0-9])|(?:3[01])|[1-9])
HOUR (?:2[0123]|[01]?[0-9])
MINUTE (?:[0-5][0-9])
SECOND (?:(?:[0-5][0-9]|60))
ISO8601_TIMEZONE (?:Z|[+-]%{HOUR}(?::?%{MINUTE}))
TIMESTAMP %{YEAR:year}/%{MONTHNUM:monthnum}/%{MONTHDAY:monthday}-%{HOUR:hour}:%{MINUTE:minute}:%{SECOND:second}.%{VALUE:_second}
MESSAGE %{DATA}ERR_SYSTEM%{DATA}
PARSE_ERROR %{TIMESTAMP:ts}%{SPACE}%{USERNAME:type1}%{SPACE}%{USERNAME:slave}%{SPACE}%{USERNAME:type2}%{SPACE}[%{USERNAME:fibre1}/USERNAME:fibre2]%{SPACE}%{MESSAGE:message}

今、私はこの行を解析する必要があります:

2013/05/13-05:19:16.776 INFO abcd1 gamereporting
[0000000000000000/0000000000000000000] [GameReportingSlaveImpl:0x30bf7699a010].processReport(): id=1801439850985 のエラー処理レポート = 1801439850985

解析後、次のようになります。

type1: INFO
slave : abcd1
type2: gamereportin

現在、タイプ 2 は常に'g'を見逃しています。なぜそれが起こっているのですか?

誰かが上記の行の正しい正規表現を提供できますか?

4

2 に答える 2