java.util.regex.MatchResult.start() Method


The java.time.MatchResult.start(int group) method returns the start index of the subsequence captured by the given group during this match.


Following is the declaration for java.time.MatchResult.start(int group) method.

int start(int group)


  • group − The index of a capturing group in this matcher's pattern.

Return Value

The index of the first character captured by the group, or -1 if the match was successful but the group itself did not match anything.


  • IllegalStateException − If no match has yet been attempted, or if the previous match operation failed.

  • IndexOutOfBoundsException − If there is no capturing group in the pattern with the given index.


The following example shows the usage of java.time.MatchResult.start(int group) method.

package com.tutorialspoint;

import java.util.regex.MatchResult;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class MatchResultDemo {
   private static final String REGEX = "(.*)(\\d+)(.*)";
   private static final String INPUT = "This is a sample Text, 1234, with numbers in between.";

   public static void main(String[] args) {
      // create a pattern
      Pattern pattern = Pattern.compile(REGEX);
      // get a matcher object
      Matcher matcher = pattern.matcher(INPUT); 

      if(matcher.find()) {
         //get the MatchResult Object 
         MatchResult result = matcher.toMatchResult();

         //Prints the start index of the subsequence captured by the given group during this match.
         System.out.println("Second Capturing Group - Match String start(1): "+result.start(1));

Let us compile and run the above program, this will produce the following result −

Second Capturing Group - Match String start(1): 0
Kickstart Your Career

Get certified by completing the course

Get Started