import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?:(?:^edit\\ \\\"(.+)\\\"$\\n)(?:^set\\ uuid\\ ([a-f0-9]{8}\\-(?:[a-f0-9]{4}\\-){3}[a-f0-9]{12})$\\n)(?:(?:^set\\ comment\\ )((?:(?!^set\\ )(?:.*$\\n))+)(?=^set\\ ))?(?:^set\\ service\\ (\\\".+\\\")$\\n)?(?:^set\\ extip\\ ((?:(?:\\d{1,3}\\.){3}(?:\\d{1,3}))(?:\\-(?:\\d{1,3}\\.){3}(?:\\d{1,3}))?)$\\n)(?:^set\\ extintf\\ \\\"(.+)\\\"$\\n)(?:^(set\\ portforward)\\ (enable)$\\n)?(?:^(set\\ color)\\ (\\d{1,2})$\\n)?(?:^set\\ mappedip\\ \\\"((?:(?:\\d{1,3}\\.){3}(?:\\d{1,3}))(?:\\-(?:\\d{1,3}\\.){3}(?:\\d{1,3}))?)\\\"$\\n)(?:^(set\\ protocol)\\ (.+)$\\n)?(?:^(set\\ extport)\\ (\\d{1,5}(?:\\-\\d{1,5})?)$\\n)?(?:^(set\\ mappedport)\\ (\\d{1,5}(?:\\-\\d{1,5})?)$\\n)?(?:^next$\\n(?:^$\\n)?))";
final String string = "edit \"VIP [DNS сервер site.com]\"\n"
+ "set uuid abcdef01-2345-6789-abcd-ef0123456789\n"
+ "set comment \"Публикация IP-адреса для проекта \n"
+ "\\\"TEST\\\" в ДЦ \\\"Облако\\\"\"\n"
+ "set service \"HTTP Webserver\"\n"
+ "set extip 100.200.254.20\n"
+ "set extintf \"DMZ [VLAN 100]\"\n"
+ "set portforward enable\n"
+ "set color 3\n"
+ "set mappedip \"10.100.200.5\"\n"
+ "set protocol udp\n"
+ "set extport 53\n"
+ "set mappedport 2000-65535\n"
+ "next\n\n"
+ "edit \"VIP [NTP сервер site.com]\"\n"
+ "set uuid abcdef01-2345-6789-abcd-ef0123456789\n"
+ "set comment \"Публикация IP-адреса для проекта \n"
+ "\\\"TEST\\\" в ДЦ \\\"Облако\\\"\"\n"
+ "set service \"NTP TCP Server\" \"NTP UDP Server\"\n"
+ "set extip 100.200.254.20-100.200.254.21\n"
+ "set extintf \"DMZ [VLAN 100]\"\n"
+ "set portforward enable\n"
+ "set color 3\n"
+ "set mappedip \"10.100.200.5-10.100.200.6\"\n"
+ "set protocol udp\n"
+ "set extport 123\n"
+ "set mappedport 1000-1999\n"
+ "next\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