Recipe4.10 apache log分析程序
通过前面的几节,现在看一个实例:apache的日志分析程序。以我本机的apache log为例,如下:192.168.1.138 - - [03/Feb/2006:01:40:20 +0800] "GET /phpinfo.php HTTP/1.1" 404 295//分别为 客户端IP、访问日期、请求路径、服务端响应Code、请求文件大小
其正则表达式为:^([\d.]+) (\S+) (\S+) \[([\w:/]+\s[+\-]\d{4})\] "(.+?)" (\d{3}) (\d+)
想到前面正则中()的作用了么?可以通过group(i)快速的将每组()中类容提取出来。第一组([\d.]+):将IP地址匹配出来第四组([\w:/]+\s[+\-]\d{4}):将时间匹配出来第五组"(.+?)":将客户端请求内容匹配出来第六组(\d{3}):将服务端响应Code匹配出来第七组(\d+):将文件大小匹配出来
关于那些正则表达式元字符的语法详见:http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html测试程序: