ログファイルの情報を解析するために、Javaで正規表現を書くのに問題があります。Javaルックアヘッドの正規表現
私は、 "timeinstant:任意の文字を含む文字列"という構造が1からN回繰り返されるStringを持っています。
timeinstantの形式は "dd/mm/yyyy hh:MM:ss:MMMMMM"です(Mはマイクロ秒です)。
私がやっていることは、入ってくる文字列に含まれている最後のtimeinstantのマイクロ秒を見つけることです。私は"987: pump..."
を指すようにm.find()
たい文字列
] 2012/04/02 16:28:51:861819: abcdefg : lwersdgsdg remote=xx.xxx.xx.xxx:yyy3f] accepted and identified as: John 2012/04/02 16:28:51:862987: pump: Received data on connection {John} [
と例えば
、。先読みで正規表現を使用して、この、イムを得るために:
"(\\d{3}:)(?!\\d{4}/\\d{2}/\\d{2}\\s\\d{2}:\\d{2}:\\d{2}:\\d{6})"
しかし、今m.find()
は(2012/04/02 16:28:51:861819
に含まれる)819
を指しています。
それだけです。先読みの最初と最後に*を付けました。どうもありがとうございました。 – Tom