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


Advertisements

Description

The java.util.regex.Matcher.start(int group) method returns the start index of the subsequence captured by the given group during the previous match operation.

Declaration

Following is the declaration for java.util.regex.Matcher.start(int group) method.

public int start(int group)

Parameters

  • 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.

Exceptions

  • 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.

Example

The following example shows the usage of java.util.regex.Matcher.start(int group) method.

package com.tutorialspoint;

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

public class MatcherDemo {
   private static String REGEX = "(a*b)(foo)";
   private static String INPUT = "aabfooaabfooabfoob";
   private static String REPLACE = "-";
   
   public static void main(String[] args) {
      Pattern pattern = Pattern.compile(REGEX);
      
      // get a matcher object
      Matcher matcher = pattern.matcher(INPUT);
      
      while(matcher.find()) {
      //Prints the start index of the subsequence captured by the given group.
         System.out.println("Second Capturing Group, (foo) Match String start(): 
            "+matcher.start(1));
      }      
   }
}

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

Second Capturing Group, (foo) Match String start(): 0
Second Capturing Group, (foo) Match String start(): 6
Second Capturing Group, (foo) Match String start(): 12
javaregex_matcher.htm
Advertisements