public static void main(String[] args) {
String ymdhmsRegex = "[\\d\\d\\d\\d\\-\\d\\d-\\d\\d \\d\\d:\\d\\d:\\d\\d,\\d\\d\\d]";
String threadRegex = "\\[(.*)\\]";
String classRegex = "[\\w]*";
String lineRegex = "\\((.*)\\)";
String messageRegex = ".*";
String log = " INFO 2018-05-08 02:19:58,605 [qtp1945566818-174] DbgSeaApiServlet.java (line 39) getTrans null 180508012105010002";
String regex = "( INFO )(ymdhmsRegex)(.*)(threadRegex)(.*)(classRegex)(lineRegex)(.*)(messageRegex)";
regex=regex.replace("ymdhmsRegex", ymdhmsRegex);
regex=regex.replace("threadRegex", threadRegex);
regex=regex.replace("classRegex", classRegex);
regex=regex.replace("lineRegex", lineRegex);
regex=regex.replace("messageRegex", messageRegex);
// String partern = " INFO [\\d\\d\\d\\d]-[\\d\\d]-[\\d\\d] [\\d\\d]:[\\d\\d]:[\\d\\d],[\\d\\d]\\d \\[.*\\] *\\.* \\(line [0-9]*\\)";
System.out.println(log.matches(regex));
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(log);
System.out.println(matcher.matches() + " " + matcher.groupCount());
for (int i = 0; i < matcher.groupCount(); i++) {
System.out.println(i + " " + matcher.group(i));
}
}
}
//output
true
true 11
0 INFO 2018-05-08 02:19:58,605 [qtp1945566818-174] DbgSeaApiServlet.java (line 39) getTrans null 180508012105010002
1 INFO
2 2
3 018-05-08 02:19:58,605
4 [qtp1945566818-174]
5 qtp1945566818-174
6 DbgSeaApiServlet.java
7
8 (line 39)
9 line 39
10 getTrans null 180508012105010002