import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "<([^> ]+)[^>]*>[^<]*<([^> ]+)[^>]*>(\\{\\{.*\\}\\})<\\/\\2>[^<]*<\\/\\1>";
final String string = "# <td><p>{{README.README}}</p></td>\n"
+ "# My soluction is independent of the HTML tags which make it very flexible.\n"
+ "# Work with javascript, python and php(probably you are using javascript).\n"
+ "#\n"
+ "# Alternative soluctions... copy and try!\n"
+ "# More expecific:\n"
+ " <([^> ]+)[^>]*>[^<]*<([^> ]+)[^>]*>({{custom.amountTable}})<\\/\\2>[^<]*<\\/\\1>\n"
+ "# More expecific and faster:\n"
+ " <(tr)[^>]*>[^<]*<(td)[^>]*>({{custom.amountTable}})<\\/\\2>[^<]*<\\/\\1>\n"
+ "<thead>\n"
+ "<tr style=\"background-color: #487cdb; text-align: center;\">\n"
+ "<td style=\"width: 224px;\">qwerqwerqwer</td>\n"
+ "<td style=\"width: 224px;\">qwerqwerqwer</td>\n"
+ "<td style=\"width: 225px;\">qwerqwerqwer</td>\n"
+ "</tr>\n"
+ "</thead>\n"
+ "<tbody>\n"
+ "<tr>\n"
+ "<td style=\"width: 224px;\"> </td>\n"
+ "<td style=\"width: 224px;\"> </td>\n"
+ "<td style=\"width: 225px;\"> </td>\n"
+ "</tr>\n"
+ "<tr style=\"text-align: center;\">\n"
+ "<td style=\"width: 224px;\" colspan=\"3\">{{custom.amountTable}}</td>\n"
+ "</tr>\n"
+ "<tr>\n"
+ "<td style=\"width: 224px;\"> </td>\n"
+ "<td style=\"width: 224px;\"> </td>\n"
+ "<td style=\"width: 225px;\"> </td>\n"
+ "</tr>\n"
+ "</tbody>\n"
+ "</table>\n\n"
+ "# <td><p>{{HEY.FYI}}</p></td>\n"
+ "# I could make a function that generate the regex dinamicly, for example you \n"
+ "# could pass the expecific {{custom.property}} part \n"
+ "# and the level of HTML tags to match\n"
+ "# matchFunction('custom.amountTable', 2))\n\n"
+ "<tag whatever=\"property\">\n"
+ "<anothertag>{{custom.whatever}}</anothertag>\n"
+ "</tag>\n\n"
+ "<td><p>{{custom.whatever}}</p></td>\n\n\n"
+ "#Junior Báez: https://www.linkedin.com/in/jrbaez01/";
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