import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(^(\\/\\*)|([ \\t'\"](\\/\\*)))(?!\\/)(.|[\\r\\n]|\\n)+?\\*\\/\\n?\\n?";
final String string = "/* 'aa/' */\n\n"
+ "/*!test*/\n\n"
+ "/* someone said 'hello' */\n\n"
+ "/* \"hello\"*/\n\n"
+ "/***test****/\n\n"
+ "/******\n"
+ "'test'\n"
+ "****/\n\n"
+ "/****\n"
+ "test\n"
+ "****/\n\n"
+ "// let's try a single quote here \"test\"\n\n"
+ "/*\n"
+ "test\n"
+ "*/\n\n"
+ "/*'test'*/\n\n"
+ "/*\n"
+ " test\n"
+ "*/\n\n"
+ "/*\n"
+ " 'test ' */\n\n"
+ "/** @require 'aa/*' */\n\n"
+ ".test\n"
+ " content ''/* test */\n\n"
+ ".test content \"/* test */\"\n\n"
+ ".test content /* test */\n\n"
+ "@require 'aaa/*'\n\n"
+ "@require 'bbb/*' /* test */\n\n"
+ "@require 'ccc/*'\n\n"
+ "@require 'ccc/* ab */' /* test */\n\n"
+ "@require 'ddd/*' /*test '*/\n"
+ "@require \"ddd/*\" /*test '*/\n\n"
+ "@require 'eee/*'\n"
+ "// test again\n\n"
+ "@require 'fff/*'\n\n"
+ "@require 'ggg/*'\n\n\n"
+ "@require 'hhh/*'\n\n\n"
+ "@require 'iii/*'\n\n"
+ "@require 'jjj/*' /* \n"
+ "test */\n\n"
+ "@require 'kk/**/*'";
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