import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?i)^([0-9-]+)T([0-9:]+)-([0-9:]+) ([a-z0-9]+) ([a-z0-9]+)\\[([0-9]+)\\]: client ([0-9a-f.:]+)#([0-9]+) \\((.*?)\\): query: (.*?) ([a-z]+) ([a-z0-9]+) ([-+])([a-z]+)* \\((.*?)\\)";
final String string = "\n"
+ "2017-11-30T06:25:53-07:00 epperson1 named[8294]: client 66.249.66.83#38327 (utahdwr.groups.et.byu.net): query: utahdwr.groups.et.byu.net IN A - (128.187.223.235)\n\n"
+ "2017-11-30T06:25:52-07:00 epperson1 named[8294]: client 208.67.217.73#44043 (18.21.187.128.in-addr.arpa): query: 18.21.187.128.in-addr.arpa IN PTR -E (128.187.223.235)\n\n"
+ "2017-11-30T06:25:52-07:00 epperson1 named[8294]: client 208.67.217.73#44043 (18.21.187.128.in-addr.arpa): query: 18.21.187.128.in-addr.arpa IN PTR -E (128.187.223.235)\n\n"
+ "2017-11-30T06:26:09-07:00 epperson1 named[8294]: client 76.96.15.65#9272 (db._dns-sd._udp.byu.edu): query: db._dns-sd._udp.byu.edu IN PTR -ED (128.187.223.235)\n\n"
+ "2017-11-30T06:26:23-07:00 epperson1 named[8294]: client 10.2.119.109#60848 (www.mers.byu.edu): query: www.mers.byu.edu IN A + (128.187.223.235)\n\n"
+ "2017-11-30T06:26:59-07:00 epperson1 named[8294]: client 128.187.56.171#19775 (LAB.MERS.BYU.EDU\\032MERS.BYU.EDU): query: LAB.MERS.BYU.EDU\\032MERS.BYU.EDU IN SOA -EDC (128.187.223.235)\n\n"
+ "2017-11-30T06:41:52-07:00 epperson1 named[8294]: client 209.88.21.70#53 (edns1.byu.edu): query: edns1.byu.edu IN A6 -E (128.187.223.235)\n\n"
+ "2017-11-30T07:16:59-07:00 hendry1 named[16431]: client 74.125.186.65#61690 (*.byu.edu): query: *.byu.edu IN A -ED (128.187.223.243)\n\n"
+ "2017-11-30T09:11:02-07:00 epperson1 named[8294]: client 69.252.200.1#45456 (%24refferer.app.byu.edu): query: %24refferer.app.byu.edu IN A -ED (128.187.223.235)\n\n"
+ "2017-11-30T10:13:27-07:00 hendry1 named[16431]: client 135.19.0.19#2470 (gw13.byu.edu,gw9.byu.edu,gw12.byu.edu,gw10.byu.edu,gw11.byu.edu): query: gw13.byu.edu,gw9.byu.edu,gw12.byu.edu,gw10.byu.edu,gw11.byu.edu IN A -ED (128.187.223.243)\n\n"
+ "2019-01-08T06:27:18-07:00 epperson1 named[10227]: client 2620:8b:c000:4:198:97:62:197#9237 (20.112.187.128.in-addr.arpa): query: 20.112.187.128.in-addr.arpa IN PTR -EDC (2620:10f:3007:fb04::eb)\n\n"
+ "2019-01-08T06:27:18-07:00 epperson1 named[10227]: client completejiberish#9237 (20.112.187.128.in-addr.arpa): query: 20.112.187.128.in-addr.arpa IN PTR -EDC (completejibbersh)\n";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
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