用于记录消息的Java正则表达式

时间:2018-05-29 18:25:05

标签: java regex regex-group

我希望匹配日志消息,例如

19:43:09.469 [main] INFO  o.g.s.logging.HashCodeConverterIT [1083962448] - message

并使用命名组提取[]内的数字。 AFAIK

Pattern p = Pattern.compile("\\d\\d:\\d\\d:\\d\\d.\\d\\d\\d \\[main\\] INFO  o.g.s.logging.HashCodeConverterIT \\[(?<id>[0-9]+)\\] - message")

应该提供一个模式,以便

p.matcher("19:43:09.469 [main] INFO  o.g.s.logging.HashCodeConverterIT [1083962448] - message").group("id")

返回1083962448。我确认正则表达式正在使用https://www.freeformatter.com/java-regex-tester.html,表明matchestrue,第二组是我要提取的数字。但是,OpenJDK 8检索失败的原因是java.lang.IllegalStateException: No match found用于访问组名和索引1

0 个答案:

没有答案