使用java.regex.Matcher解析日志文件

时间:2015-09-07 03:05:46

标签: java

我正在学习Java编程。我有一个思科日志:

String logLine="Jul 15 21:12:41 router_provider_pe2 57: *Jul 15 21:12:26.223: %LDP-5-NBRCHG: LDP Neighbor 10.1.1.34:0 (3) is UP";

我正在尝试这个正则表达式:

String logPattern = "([\\w]+\\s[\\d]+\\s[\\d:]+) (\\d+:) ([*\\w]+\\s[\\d]+\\s[\\d:]+:) (\\w.+)";

但这不好。你能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

你的字符串:

"Jul 15 21:12:41 router_provider_pe2 57: *Jul 15 21:12:26.223: %LDP-5-NBRCHG: LDP Neighbor 10.1.1.34:0 (3) is UP"

你的模式:

 "([\w]+\s[\d]+\s[\d:]+) (\d+:) ([*\w]+\s[\d]+\s[\d:]+:) (\w.+)"

第一组括号中的模式部分与Jul 15 21:12:41匹配。该模式期望后面跟一个空格,然后至少一个数字。但此时的字符串包含一个空格和字母r,它不是数字。因此,没有匹配。