import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^([^\\s]+) ([^\\s]+) ([^\\s]+) \\[([\\w:/]+\\s[+\\-]\\d{4})\\] \"(\\S+) /.*() ([^\\\\\"]+)\" (\\d{3}) (\\S+)";
final String string = "ix-sac6-20.ix.netcom.com - - [08/Aug/1995:14:43:57 -0400] \"GET /images/ksclogo-medium.gif HTTP/1.0 \" 200 5866\n"
+ "ix-sac6-20.ix.netcom.com - - [08/Aug/1995:14:44:07 -0400] \"GET /images/NASA-logosmall.gif HTTP/1.0 \" 200 786\n"
+ "ix-sac6-20.ix.netcom.com - - [08/Aug/1995:14:44:11 -0400] \"GET /images/MOSAIC-logosmall.gif HTTP/1.0 \" 200 363\n"
+ "ix-sac6-20.ix.netcom.com - - [08/Aug/1995:14:44:13 -0400] \"GET /images/USA-logosmall.gif HTTP/1.0 \" 200 234\n"
+ "ix-sac6-20.ix.netcom.com - - [08/Aug/1995:14:43:39 -0400] \"GET / HTTP/1.0 \" 200 7131\n"
+ "ix-sac6-20.ix.netcom.com - - [08/Aug/1995:14:44:15 -0400] \"GET /images/WORLD-logosmall.gif HTTP/1.0 \" 200 669\n"
+ "ix-sac6-20.ix.netcom.com - - [08/Aug/1995:14:44:31 -0400] \"GET /shuttle/countdown/ HTTP/1.0 \" 200 4673\n"
+ "ix-sac6-20.ix.netcom.com - - [08/Aug/1995:14:44:41 -0400] \"GET /shuttle/missions/sts-69/count69.gif HTTP/1.0 \" 200 46053\n"
+ "ix-sac6-20.ix.netcom.com - - [08/Aug/1995:14:45:34 -0400] \"GET /images/KSC-logosmall.gif HTTP/1.0 \" 200 1204\n"
+ "ix-sac6-20.ix.netcom.com - - [08/Aug/1995:14:45:46 -0400] \"GET /cgi-bin/imagemap/countdown69?293,287 HTTP/1.0 \" 302 85\n"
+ "ix-sac6-20.ix.netcom.com - - [08/Aug/1995:14:45:48 -0400] \"GET /htbin/cdt_main.pl HTTP/1.0 \" 200 3714\n"
+ "ix-sac6-20.ix.netcom.com - - [08/Aug/1995:14:45:52 -0400] \"GET /shuttle/countdown/images/countclock.gif HTTP/1.0 \" 200 13994\n"
+ "ix-li1-14.ix.netcom.com - - [08/Aug/1995:14:46:22 -0400] \"GET / HTTP/1.0 \" 200 7131\n"
+ "ix-li1-14.ix.netcom.com - - [08/Aug/1995:14:46:29 -0400] \"GET /images/ksclogo-medium.gif HTTP/1.0 \" 200 5866\n"
+ "ix-li1-14.ix.netcom.com - - [08/Aug/1995:14:46:35 -0400] \"GET /images/NASA-logosmall.gif HTTP/1.0 \" 200 786\n"
+ "ix-li1-14.ix.netcom.com - - [08/Aug/1995:14:46:37 -0400] \"GET /images/MOSAIC-logosmall.gif HTTP/1.0 \" 200 363\n"
+ "ix-li1-14.ix.netcom.com - - [08/Aug/1995:14:46:38 -0400] \"GET /images/USA-logosmall.gif HTTP/1.0 \" 200 234\n"
+ "ix-li1-14.ix.netcom.com - - [08/Aug/1995:14:46:40 -0400] \"GET /images/WORLD-logosmall.gif HTTP/1.0 \" 200 669\n"
+ "ix-li1-14.ix.netcom.com - - [08/Aug/1995:14:47:41 -0400] \"GET /shuttle/missions/sts-70/mission-sts-70.html HTTP/1.0 \" 200 20304\n"
+ "ix-sac6-20.ix.netcom.com - - [08/Aug/1995:14:47:48 -0400] \"GET /shuttle/countdown/count.html HTTP/1.0 \" 200 73231";
final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html