import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?:#|//)[^\\r\\n]*|/\\*[\\s\\S]*?\\*/";
final String string = "mystring bla bla bla <-- should find this\n"
+ "bla bla mystring bla <-- also this\n"
+ "// bla bla mystring <-- not this , because is already commented\n"
+ "//mystring <-- not this\n"
+ "// alkdfjñas askfjña bla bla mystring <-- not this\n"
+ "wsfier mystring añljkfasñf <--should find this\n"
+ "mystring //a comment <-- should find this\n"
+ " bla bla // asfsdf mystring <-- should SKIP this, because mystring is commented\n"
+ "/* \n"
+ "asdfasf\n"
+ "mystring <-- i dont care if it finds this, even if it is inside a block comment\n"
+ "añfkjañsflk\n"
+ "// aksañl mystring <-- but should skip this, because the single line is already commented with '//' (regardless the block comment) \n\n"
+ "añskfjñas\n"
+ "asdasf\n"
+ "*/";
final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);
if (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