import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(//[^\\n]+)|(/\\*.*?\\*/)";
final String string = "#define MC2\n"
+ "#define MC1\n\n"
+ "# ifndef MCTEST\n"
+ "#define MCTEST\n"
+ " \n"
+ "#ifdef MC1 \n\n"
+ "#define data1 0x20\n"
+ "/*cmment start*/#define /*this is comment*/ data2 2.5f\n"
+ "#define date3 L\"this is a data\"\n"
+ "#define data4 true\n\n\n"
+ "#ifdef MC2\n\n"
+ "#define data5 'a'\n"
+ "#define data6 { {2.0, \"abc\"}, {1.5, \"def\"}, {5.6f, \"7.2\"}} // ¸¡µãÓë×Ö·û´®×é³ÉµÄ½á¹¹Ìå³õʼ»¯¾ÛºÏ£¬ ÔÙ½øÒ»²½¾ÛºÏ×é³ÉÁËÊý×é\n\n"
+ "#else //else MC2\n\n"
+ "# define data5 {5.0, 7.5, 3.8}\n"
+ "#define data6 'c'\n\n"
+ "#endif //end MC2\n\n"
+ "#ifdef MC3\n"
+ " //¼ÙifǶÌ×£¬ÓÃÓÚ²âÊÔ£¬ÔÚÓ¦¸Ã±»ºöÂÔµÄÇé¿öÏ£¬#endifµÄ¼æÈÝÇé¿ö\n"
+ "#endif //end MC3\n\n"
+ "#else//else MC1\n"
+ "\"//ccc\"\n"
+ "\"/*bbb*/\"\n"
+ "\"/**/\"\n"
+ "//\"//bbb\"\n"
+ "/*\"jjjjj\"*/\n"
+ "#define data1 1.0f /* this is float\n"
+ "may be changed\n"
+ "*/\n"
+ "#define data2 2\n"
+ "#define date3 false\n"
+ "#define data4 \"this is a data\"\n\n\n"
+ "#ifdef MC2\n\n"
+ "#define data5 'B'\n"
+ "#define data6 {1, 6, 3}\n"
+ "#define data7 0xa\n\n"
+ "#else//else MC2\n\n"
+ "#define data5 'D'\n"
+ "#define data6 {1, 6}\n\n"
+ "#endif //end MC2\n\n"
+ "#endif //MC1\n\n"
+ "#ifdef MC2\n"
+ "#undef MC2\n"
+ "#endif\n\n"
+ "/*ÔÚ¶àÐÐ×¢ÊͺóÃæ½ô¸úÒ»¸öµ¥ÐÐ×¢ÊÍ*///½ô¸úµÄµ¥ÐÐ×¢ÊÍ\n\n"
+ "#endif // !MC_TEST";
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