import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?:start:(?=\\w+(?:-\\w+){2,9}:end)|(?<=-)\\G)(\\w+)(?:-|:end)";
final String string = "-Should-not-match\n"
+ "Some text here and start:test-test-lorem-ipsum-sir-doloret-etc-something:end another something start:SIR-doloret-something:endand this is a non-match: start:SOMmething-blabla:end because hasn't got enough groups.\n"
+ " \n"
+ "This also start:REST-doloret-etc-something:end but not this: start:XXYY-lorem-ipsum-sir-doloret-etc-something-8-nine-ten-eleven:end because i\n"
+ "t's too long. start:XXYY-lorem-ipsum-sir-doloret-etc-something-8-nine-ten:end just there, and also start:XXYY-lorem-ipsum:end-garbage\n\n"
+ "This shouldn-t match also start:nothing:end! start:nothing-next:end\n\n"
+ "Test start:Something-nine-ten-eleven:end-bla-blastart:REST-doloret-etc-something:end---";
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