import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?(DEFINE)\n"
+ " (?<next_open_tag>\n"
+ " [^<]*+\n"
+ " (?i: <++[^<?s][^<]* \n"
+ " | <++(?! \\?php\n"
+ " | \\?=\n"
+ " | script\\s*language\\s*=\\s*([\\'\"]?)php\\g\\{-1\\}\\s*>\n"
+ " ) [^<]*\n"
+ " )*+\n"
+ " (?i: <++(?: \\?php\n"
+ " | \\?=\n"
+ " | [^>]+\n"
+ " ) \n"
+ " | \\z \n"
+ " ) \n"
+ " )\n"
+ ")\n\n\n"
+ "\\A (?&next_open_tag) \\K\n\n"
+ "|\n\n"
+ "[^'\"`/#<?]*+\n"
+ "(?: '(?:[^'\\\\]+|\\\\.)*+' [^\\'\"`/#<?]*\n"
+ " | \"(?:[^\"\\\\]+|\\\\.)*+\" [^\\'\"`/#<?]*\n"
+ " | `(?:[^`\\\\]+|\\\\.)*+` [^\\'\"`/#<?]* \n"
+ " | /(?![/*]) [^\\'\"`/#<?]* # stop for // or /*\n\n"
+ " | # if close tag ?>\n"
+ " \\? (?: >(?&next_open_tag)[^\\'\"`/#<?]* | )\n\n"
+ " | < (?: # heredoc or nowdoc\n"
+ " <<[\\ \\t]*([\\'\"]?)\n"
+ " ([a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*)\n"
+ " \\g\\{-2\\}[\\ \\t]*[\\r\\n]\n"
+ " (?-s:.*+[\\r\\n])*?\n"
+ " \\g\\{-1\\}[\\r\\n;]\n"
+ " [^\\'\"`/#<?]*\n\n"
+ " | (?i: /script\\s*>)\n"
+ " (?&next_open_tag)\n"
+ " [^\\'\"`/#<?]* \n\n"
+ " | [^\\'\"`/#<?]*\n"
+ " )\n"
+ ")*+\n"
+ "\\K\n"
+ "(?: (?://|\\#)(?:[^\\n?]+|\\?(?!>))*+ # single line comment // и #\n"
+ " | /\\*(?:[^*]+|\\*(?!/))*+\\*/ # multi line comment /* */\n"
+ ")?\n";
final String string = "<!-- *//* -->\n"
+ "<?php\n\n"
+ "$a = \"text */*\"; // comment\n"
+ "$b = 'text *//*'; # comment\n"
+ "//*\n\n"
+ "if ($a) {\n"
+ " echo $b;\n"
+ "}\n\n"
+ "/*/\n\n"
+ "if ($bar) {\n"
+ " echo $foo;\n"
+ "}\n\n"
+ "// */\n\n"
+ "?>\n"
+ "<!-- *//* -->\n\n\n"
+ "<script language = \"php\" >\n\n"
+ "# comment ?> Text <?php $a = '/*'; // comment\n\n"
+ "$b = @`ls ./* -al`;\n\n"
+ "# */\n"
+ "</script>\n\n"
+ "<!-- *//* --> \n";
final String subst = "";
final Pattern pattern = Pattern.compile(regex, Pattern.COMMENTS | Pattern.DOTALL);
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