ログファイルから情報を解析するために Java で正規表現を作成する際に問題に直面しています。
「timeinstant:任意の文字を含む文字列」という構造が1回からN回繰り返される文字列があります。
timeinstant の形式は "dd/mm/yyyy hh:MM:ss:MMMMMM" (M はマイクロ秒) です。
私がやろうとしているのは、着信文字列に含まれる最後の timeinstant のマイクロ秒を見つけることです。
たとえば、文字列で
] 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} [
m.find()
を指したい "987: pump..."
。これを取得するために、先読みで正規表現を使用しています。
"(\\d{3}:)(?!\\d{4}/\\d{2}/\\d{2}\\s\\d{2}:\\d{2}:\\d{2}:\\d{6})"
しかし、今は(に含まれる)m.find()
を指しています。819
2012/04/02 16:28:51:861819