网易2011校园招聘笔试题

本文介绍了一种使用正则表达式从日志中统计符合GET IP请求总数的方法,并给出了修正后的正则表达式实现。

统计日志中符合(GET ip 请求数)这个条件的请求总数。

这道题考的其实就是正则表达式的知识点,笔试的是时候时间太紧了,细节没写对,杯具。。。

回来自己写了下,发出来纪念下,呵呵!

package test1; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Wang { public static void main(String[] args) { // String regextIp = "GET//s(([1]{0,1}[0-9]{1,2})|([2]{1}[0-5]{2}))//.(([1]{0,1}[0-9]{1,2})|([2]{1}[0-5]{2}))//.(([1]{0,1}[0-9]{1,2})|([2]{1}[0-5]{2}))//.(([1]{0,1}[0-9]{1,2})|([2]{1}[0-5]{2}))//s[0-9]{1,}";//正则表达式 ,存在bug String regextIp = "GET\\s(([1]{0,1}[0-9]{1,2})|([2]{1}[0-4]{1}[0-9]{1})|([2][5]{1}[0-5]{1}))\\.(([1]{0,1}[0-9]{1,2})|([2]{1}[0-4]{1}[0-9]{1})|([2][5]{1}[0-5]{1}))\\.(([1]{0,1}[0-9]{1,2})|([2]{1}[0-4]{1}[0-9]{1})|([2][5]{1}[0-5]{1}))\\.(([1]{0,1}[0-9]{1,2})|([2]{1}[0-4]{1}[0-9]{1})|([2][5]{1}[0-5]{1}))\\s[0-9]{1,}";// 修正后的正则表达式 String request = "GET 255.250.255.125 12"; Pattern p = Pattern.compile(regextIp); Matcher m = p.matcher(request); int requestSum = 0; if (m.matches()) { String[] str = request.split(" "); requestSum += Integer.parseInt(str[2]); } System.out.println(requestSum); } }

其中要点是ip地址的正则表达式的写法:ip地址是小于255的。

原题是从日志文件中读取,这里没有!


注意:正则表达式已修改,以前的有bug。



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值