import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?(DEFINE)\n"
+ " (?<void>br|img|area|base|col|command|embed|hr|input|keygen|link|meta|param|source|track|wbr|!DOCTYPE)\n"
+ " (?<any>[^<>]*+)\n"
+ ")\n\n"
+ "<div \\s class=\"card\">\n"
+ "(?P<pair> (?&any)\n"
+ " (:?\n"
+ " <(?P<v_tag>(?!\\/)(?&void))(?&any)> (?:(?&pair) | (?&any))*+ (<\\/(?P=v_tag)>)? |\n"
+ " <(?P<tag>(?!\\/)[^<> ]++)(?&any)> (?:(?&pair) | (?&any))*+ <\\/(?P=tag)>\n"
+ " ) (?&any)\n"
+ ")*\n"
+ "<\\/div>";
final String string = "<!DOCTYPE html>\n"
+ "<html>\n"
+ " <head>\n"
+ " <title>Example</title>\n"
+ " </head>\n"
+ " <body>\n"
+ " <div class=\"card-container\">\n"
+ " <div class=\"card\">\n"
+ " <h5>First MD Card</h5>\n"
+ " <img src=\"https://mdbootstrap.com/img/Photos/Horizontal/Nature/4-col/img%20(34).jpg\" alt=\"Card image cap\">\n"
+ " <p>\n"
+ " Lorem ipsum dolor sit amet consectetur adipisicing elit. Sapiente\n"
+ " fugiat accusamus excepturi rem temporibus nobis natus.\n"
+ " </p>\n"
+ " </div>\n"
+ " <div class=\"slider\">\n"
+ " <ul class=\"progress-bar\">\n"
+ " <li class=\"active\"></li>\n"
+ " <li></li>\n"
+ " <li></li>\n"
+ " </ul>\n"
+ " </div>\n"
+ " </div>\n"
+ " </body>\n"
+ "</html>\n";
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