import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(([Rr]ef|[Cc]loses|[Rr]elated|[Ff]ixes|[Pp]artial)(:|) (#\\d+|\\w+\\#\\d+|(https://|)gitlab.com/volterra/.*/issues/\\d+))|noref$";
final String string = "ref #629\n"
+ "Ref #629\n"
+ "ref specification#629\n"
+ "Ref specification#629\n"
+ "ref https://gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "Ref https://gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "ref gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "Ref gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "ref: #629\n"
+ "Ref: #629\n"
+ "ref: specification#629\n"
+ "Ref: specification#629\n"
+ "ref: https://gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "Ref: https://gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "ref: gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "Ref: gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "closes #629\n"
+ "Closes #629\n"
+ "closes specification#629\n"
+ "Closes specification#629\n"
+ "closes https://gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "Closes https://gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "closes gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "Closes gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "closes: #629\n"
+ "Closes: #629\n"
+ "closes: specification#629\n"
+ "Closes: specification#629\n"
+ "closes: https://gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "Closes: https://gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "closes: gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "Closes: gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "related #629\n"
+ "Related #629\n"
+ "related specification#629\n"
+ "Related specification#629\n"
+ "related https://gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "Related https://gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "related gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "Related gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "related: #629\n"
+ "Related: #629\n"
+ "related: specification#629\n"
+ "Related: specification#629\n"
+ "related: https://gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "Related: https://gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "related: gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "Related: gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "fixes #629\n"
+ "Fixes #629\n"
+ "fixes specification#629\n"
+ "Fixes specification#629\n"
+ "fixes https://gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "Fixes https://gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "fixes gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "Fixes gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "fixes: #629\n"
+ "Fixes: #629\n"
+ "fixes: specification#629\n"
+ "Fixes: specification#629\n"
+ "fixes: https://gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "Fixes: https://gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "fixes: gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "Fixes: gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "partial #629\n"
+ "Partial #629\n"
+ "partial specification#629\n"
+ "Partial specification#629\n"
+ "partial https://gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "Partial https://gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "partial gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "Partial gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "partial: #629\n"
+ "Partial: #629\n"
+ "partial: specification#629\n"
+ "Partial: specification#629\n"
+ "partial: https://gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "Partial: https://gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "partial: gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "Partial: gitlab.com/volterra/ves.io/specifications/-/issues/629\n"
+ "noref\n";
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