GroupIx

CharSequence inputStr = "abbabcd";
String patternStr = "(a(b*))+(c*)";

// Compile and use regular expression
Pattern pattern = Pattern.compile(patternStr);
Matcher matcher = pattern.matcher(inputStr);
boolean matchFound = matcher.find();

if (matchFound) {
    // Get all groups for this match
    for (int i=0; i<=matcher.groupCount(); i++) {
        // Get the group's captured text
        String groupStr = matcher.group(i);

        // Get the group's indices
        int groupStart = matcher.start(i);
        int groupEnd = matcher.end(i);

        // groupStr is equivalent to
        inputStr.subSequence(groupStart, groupEnd);
    }
}

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.