import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^/foo/bar/+(?:(?:find|count)/*$(*SKIP)(*FAIL)|([^/\\r\\n\\t]+))/*$";
final String string = "--------------------must NOT get as id (reseved key words)\n"
+ "/foo/bar/count\n"
+ "/foo/bar/find\n"
+ "--------------------must NOT get as id (not present)\n"
+ "/foo/bar/\n"
+ "--------------------must NOT get as id (not present tab test)\n"
+ "/foo/bar/ \n"
+ "--------------------must NOT get as id (not present line break test)\n"
+ "/foo/bar/\n\n"
+ "--------------------must NOT get as id (not present tab, line break, multiple slashes test)\n"
+ "/foo/bar// /\n"
+ " /\n"
+ "//\n"
+ "--------------------must get as id\n"
+ "/foo/bar/1\n"
+ "/foo/bar/1c\n"
+ "/foo/bar/c1\n"
+ "/foo/bar/sku\n"
+ "/foo/bar/countfind\n"
+ "/foo/bar/findcount\n"
+ "/foo/bar/skucount\n"
+ "/foo/bar/skufind\n"
+ "/foo/bar/countsku\n"
+ "/foo/bar/findsku\n"
+ "/foo/bar/coun\n"
+ "/foo/bar/fin\n"
+ "/foo/bar/ount\n"
+ "/foo/bar/ind\n"
+ "/foo/bar/skucoun\n"
+ "/foo/bar/skufin\n"
+ "/foo/bar/finsku\n"
+ "/foo/bar/counsku\n"
+ "--------------------must get as id (unnecessary slash test)\n"
+ "/foo/bar/1/\n"
+ "/foo/bar/1c/\n"
+ "/foo/bar/c1/\n"
+ "/foo/bar/sku/\n"
+ "/foo/bar/countfind/\n"
+ "/foo/bar/findcount/\n"
+ "/foo/bar/skucount/\n"
+ "/foo/bar/skufind/\n"
+ "/foo/bar/countsku/\n"
+ "/foo/bar/findsku/\n"
+ "/foo/bar/coun/\n"
+ "/foo/bar/fin/\n"
+ "/foo/bar/ount/\n"
+ "/foo/bar/ind/\n"
+ "/foo/bar/skucoun/\n"
+ "/foo/bar/skufin/\n"
+ "/foo/bar/finsku/\n"
+ "/foo/bar/counsku/\n"
+ "--------------------must get as id (unnecessary|invalid slashed test)\n"
+ "/foo/bar///1///\n"
+ "/foo/bar///1c///\n"
+ "/foo/bar///c1///\n"
+ "/foo/bar///sku///\n"
+ "/foo/bar///countfind///\n"
+ "/foo/bar///findcount///\n"
+ "/foo/bar///skucount///\n"
+ "/foo/bar///skufind///\n"
+ "/foo/bar///countsku///\n"
+ "/foo/bar///findsku///\n"
+ "/foo/bar///coun///\n"
+ "/foo/bar///fin///\n"
+ "/foo/bar///ount///\n"
+ "/foo/bar///ind///\n"
+ "/foo/bar///skucoun///\n"
+ "/foo/bar///skufin///\n"
+ "/foo/bar///finsku///\n"
+ "/foo/bar///counsku///";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.UNICODE_CASE);
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