import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?:\n"
+ " ^\n"
+ " (?<host>[\\w-]+\\.[\\w-.]*?)\n"
+ " \\.\\s*\n"
+ " (?<ttl>\\d+)\n"
+ " \\s*\n"
+ " (?<wtf>\\w*)\n"
+ " \\s*\n"
+ " (?<rectype>\\w*)\n"
+ " \\s*\n"
+ " (?<value>.*)\n"
+ " \\s*$\n"
+ ")";
final String string = "agamerica-qa.commloanservices.com.\n"
+ "====================================\n"
+ "agamerica-qa.commloanservices.com. 3600 IN SOA dns001.pnc.com. hostmaster.pnc.com. 543792585 1200 180 1209600 600\n"
+ "agamerica-qa.commloanservices.com. 86400 IN NS dns002.pnc.com.\n"
+ "agamerica-qa.commloanservices.com. 86400 IN NS dns001.pnc.com.\n"
+ "agamerica-qa.commloanservices.com. 86400 IN NS dns000.pnc.com.\n"
+ "bin.agamerica-qa.commloanservices.com. 30 IN CNAME gf0.agamerica-qa.commloanservices.com.\n"
+ "gf0.agamerica-qa.commloanservices.com. 3600 IN A 161.150.124.249\n"
+ "agamerica-qa.commloanservices.com. 3600 IN SOA dns001.pnc.com. hostmaster.pnc.com. 543792585 1200 180 1209600 600\n\n\n"
+ "agamerica.commloanservices.com.\n"
+ "====================================\n"
+ "agamerica.commloanservices.com. 3600 IN SOA dns001.pnc.com. hostmaster.pnc.com. 543792587 1200 180 1209600 600\n"
+ "agamerica.commloanservices.com. 86400 IN NS dns002.pnc.com.\n"
+ "agamerica.commloanservices.com. 86400 IN NS dns001.pnc.com.\n"
+ "agamerica.commloanservices.com. 86400 IN NS dns000.pnc.com.\n"
+ "agamerica.commloanservices.com. 3600 IN A 161.150.133.216\n"
+ "bin.agamerica.commloanservices.com. 30 IN CNAME gf2.agamerica.commloanservices.com.\n"
+ "gf1.agamerica.commloanservices.com. 3600 IN A 161.150.116.249\n"
+ "gf2.agamerica.commloanservices.com. 3600 IN A 161.150.40.249\n"
+ "agamerica.commloanservices.com. 3600 IN SOA dns001.pnc.com. hostmaster.pnc.com. 543792587 1200 180 1209600 600";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.COMMENTS);
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