import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(development|master|main|(((features|tests|bugfix|hotfix)\\/(([0-9A-Za-z-_]+)|((\\/[0-9A-Za-z-_]+)))|release\\/(?:(\\d+)\\.)?(?:(\\d+)\\.)?(\\d+)?(-(alpha|beta|rc)[0-9]))))";
final String string = "development\n"
+ "main\n"
+ "bugfix/user-list\n"
+ "bugfix/user_list\n"
+ "bugfix/123\n"
+ "bugfix/123/account-update\n"
+ "bugfix/123/account_update\n"
+ "bugfix/User_crud/account-update\n"
+ "bugfix/User_crud/account_update\n"
+ "tests/api\n"
+ "tests/123\n"
+ "tests/123/hello\n"
+ "release/1.0.1\n"
+ "release/1.0.1-beta1\n"
+ "release/1.0.1-beta\n"
+ "release/1.0.1-rc3\n\n\n"
+ "it should not match following\n"
+ "bugfix/\n"
+ "bugfix/-\n"
+ "bugfix/_\n"
+ "bugfix/-name\n"
+ "bugfix/_name\n"
+ "bugfix/-/name\n"
+ "bugfix/-/-\n"
+ "bugfix/-/_\n"
+ "release/v1.0.1";
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