作者:歪书生
email: netnerd@
日期:8/3/2001 5:25:39 PM
[TABLE][TR][TD][B]三、应用实例[/B] [/TD][/TR][/TABLE][TABLE][TR][TD]下面我们来看看Jakarta-ORO库的一些应用实例。[/TD][/TR][/TABLE][TABLE][TR][TD][B] 日志文件处理[/B] [/TD][/TR][/TABLE][TABLE][TR][TD]任务:分析一个Web服务器日志文件,确定每一个用户花在网站上的时间。在典型的BEA WebLogic日志文件中,日志记录的格式如下: [/TD][/TR][/TABLE][TABLE][TR][TD][img]/htm/app/aprog/[/img][/TD][/TR][/TABLE][TABLE][TR][TD]分析这个日志记录,可以发现,要从这个日志文件提取的内容有两项:IP地址和页面访问时间。你可以用分组符号(圆括号)从日志记录提取出IP地址和时间标记。[/TD][/TR][/TABLE][TABLE][TR][TD]首先我们来看看IP地址。IP地址有4个字节构成,每一个字节的值在0到255之间,各个字节通过一个句点分隔。因此,IP地址中的每一个字节有至少一个、最多三个数字。图八显示了为IP地址编写的正则表达式: [/TD][/TR][/TABLE][TABLE][TR][TD]
[img]/htm/app/aprog/[/img] [/TD][/TR][/TABLE][TABLE][TR][TD]
图八:匹配IP地址[/TD][/TR][/TABLE][TABLE][TR][TD]IP地址中的句点字符必须进行转义处理(前面加上“\”),因为IP地址中的句点具有它本来的含义,而不是采用正则表达式语法中的特殊含义。句点在正则表达式中的特殊含义本文前面已经介绍。[/TD][/TR][/TABLE][TABLE][TR][TD]日志记录的时间部分由一对方括号包围。你可以按照如下思路提取出方括号里面的所有内容:首先搜索起始方括号字符(“[”),提取出所有不超过结束方括号字符(“]”)的内容,向前寻找直至找到结束方括号字符。图九显示了这部分的正则表达式。[/TD][/TR][/TABLE][TABLE][TR][TD]
[img]/htm/app/aprog/[/img] [/TD][/TR][/TABLE][TABLE][TR][TD]
图九:匹配至少一个字符,直至找到“]”[/TD][/TR][/TABLE][TABLE][TR][TD]现在,把上述两个正则表达式加上分组符号(圆括号)后合并成单个表达式,这样就可以从日志记录提取出IP地址和时间。注意,为了匹配“- -”(但不提取它),正则表达式中间加入了“\s-\s-\s”。完整的正则表达式如图十所示。[/TD][/TR][/TABLE][TABLE][TR][TD]
[img]/htm/app/aprog/[/img] [/TD][/TR][/TABLE][TABLE][TR][TD]
图十:匹配IP地址和时间标记[/TD][/TR][
Java正则表达式详解(下)(2) 来自淘豆网m.daumloan.com转载请标明出处.