我需要解析日志文件并获取一些变量值。日志文件将有一个字符串
String logStr = "21:19:03 -[ 8b4]- ERROR - Jhy AlarmOccure::OnAdd - Updated existing alarm: ID [StrValue1:StrValu2|StrValue3], Instance [4053], SetStatus [0], AckStatus [1], SetTime [DateValue4], ClearedTime [DateValue5]";
我需要将 StrValue1、StrValue2、StrValue3、DateValue4 和 DateValue5 设置为变量,这些值会在出现错误时更改字段。
首先,我试图至少获得 StrValue1。但没有得到预期的结果。
Pattern twsPattern = Pattern.compile(".*?ID ?[([^]:]*):([^]|]*)|([^]]*)]");//.*ID\\s$.([^]:]*.):.([^]|]*.)|.([^]]*.).]
Matcher twsMatcher = twsPattern.matcher(logStr);
if(twsMatcher.find()){
System.out.println(twsMatcher.start());
System.out.println(twsMatcher.group());
System.out.println(twsMatcher.end());
}
我无法理解正则表达式中的分组内容。