doctor_access_log.1177977600:65.55.210.14 - - [01/May/2007:00:00:26 -0500] "GET /estil.strawn HTTP/1.0" 404 14006
71.86.225.114 - - [23/May/2007:11:39:29 -0500] "GET /healthlink.css HTTP/1.1" 200 1799两行字符串如上面那样
现在要匹配IP, 方括号中的时间,以及后面的链接如“/healthlink.css HTTP/1.1”我自己写的匹配不到IP和时间达人帮我写一个,谢谢了
71.86.225.114 - - [23/May/2007:11:39:29 -0500] "GET /healthlink.css HTTP/1.1" 200 1799两行字符串如上面那样
现在要匹配IP, 方括号中的时间,以及后面的链接如“/healthlink.css HTTP/1.1”我自己写的匹配不到IP和时间达人帮我写一个,谢谢了
解决方案 »
- 最近总看到很多讨论Java走下坡路的帖子,新人求澄清!
- JAVA读网络文件,我怎么读出来数据比原来小,但是能打开,但是不完整,为什么?
- 帮我看看问题出在哪 谢谢
- 请高手帮我瞧瞧
- Java Csv文件处理(原创幻冰呵呵也就是本人)
- 高手进,关于匿名内部类中用到的变量,为什莫必须是final的???
- ECLIPSE如何把自己增加的JDBC类和原程序一起打包,急,高分
- java中如何改变线条的线型、线宽、颜色等相关参数??
- ======请问jFrame与jDialog有什么不同?=====
- 在jbuiler中,我建了一个工程,却不象别人的工程一样有src,class,bak,文件夹
- 用native2ascii将国际化文件还原的问题
- 最近在一本英文版数据结构书上看到这么一个Queue的实现,感觉有错误
public static void main(String args[]){
String str ="doctor_access_log.1177977600:65.55.210.14 - - [01/May/2007:00:00:26 -0500] \"GET /estil.strawn HTTP/1.0\" 404 14006 71.86.225.114 - - [23/May/2007:11:39:29 -0500] \"GET /healthlink.css HTTP/1.1\" 200 1799 ";
String regex = "(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})\\s-\\s-\\s\\[([^\\]]+)\\]";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
while(matcher.find()){
System.out.println("IP:\n"+ matcher.group(1));
System.out.println("Time:\n"+ matcher.group(2));
System.out.println();
}
}
IP:
65.55.210.14
Time:
01/May/2007:00:00:26 -0500IP:
71.86.225.114
Time:
23/May/2007:11:39:29 -0500
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class TestReg {
public static void main(String[] args) {
String str = "doctor_access_log.1177977600:65.55.210.14 - - [01/May/2007:00:00:26 -0500] \"GET /estil.strawn HTTP/1.0\" 404 14006 71.86.225.114 - - [23/May/2007:11:39:29 -0500] \"GET /healthlink.css HTTP/1.1\" 200 1799 ";
String regIp = "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}";
String regTime = "\\[(.[^\\s]*)";
String regHeader = "\"(.[^\"]*)\"";
Pattern pattern = Pattern.compile(regIp);
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println("IP = " + matcher.group());
} pattern = Pattern.compile(regTime);
matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println("Time = " + matcher.group(1));
} pattern = Pattern.compile(regHeader);
matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println("Header = " + matcher.group(1));
} }
}IP = 65.55.210.14
IP = 71.86.225.114
Time = 01/May/2007:00:00:26
Time = 23/May/2007:11:39:29
Header = GET /estil.strawn HTTP/1.0
Header = GET /healthlink.css HTTP/1.1