Using a Non-Capturing Group in a Regular Expression
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] argv) throws Exception { String inputStr = "abbabcd"; String patternStr = "(a(?:b*))+(c*)"; // (?:b*) is a non-capturing group Pattern pattern = Pattern.compile(patternStr); Matcher matcher = pattern.matcher(inputStr); boolean matchFound = matcher.find(); if (matchFound) { for (int i = 0; i <= matcher.groupCount(); i++) { String groupStr = matcher.group(i); } } } }