我正在学习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.+)";
但这不好。你能帮帮我吗?
答案 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
,它不是数字。因此,没有匹配。