import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "((<([a-zA-Z0-9]*:)*matchNode[^>]*)\\/\\s*>)|(((<([a-zA-Z0-9]*:)*matchNode[\\s\\S]*?)>(([\\s\\S]*?)))<\\/([a-zA-Z0-9]*:)*matchNode>)";
final String string = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+ "<root xmlns:xx12=\"www.example.com\">\n"
+ " <xx12:matchNode so=\"what\">also matched</xx12:matchNode>\n"
+ " <matchNode/>\n"
+ " <matchNode>matched</matchNode>\n"
+ " <xx12:matchNode/>\n"
+ " <unmatchNode>\n"
+ " </unmatchNode>\n"
+ " <xx12:matchNode>also matched</xx12:matchNode>\n"
+ " <matchNode attr=\"12\" test=\"false\">\n"
+ " matched\n"
+ " </matchNode>\n"
+ "</root>";
final String subst = "$2$6>(obfuscated...)</$3$7matchNode>";
final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);
// The substituted value will be contained in the result variable
final String result = matcher.replaceAll(subst);
System.out.println("Substitution result: " + result);
}
}
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