The start(int group) method of Matcher Class is used to get the start index of the match result already done, from the specified group.
Syntax:
public int start(int group)
Parameters: This method takes a parameter group which is the group from which the start index of the matched pattern is required.
Return Value: This method returns the index of the first character matched from the specified group.
Exception: This method throws:
- 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.
Below examples illustrate the Matcher.start() method:
Example 1:
// Java code to illustrate start() method   import java.util.regex.*;   public class GFG {     public static void main(String[] args)     {           // Get the regex to be checked         String regex = "(G*s)" ;           // Create a pattern from regex         Pattern pattern             = Pattern.compile(regex);           // Get the String to be matched         String stringToBeMatched             = "GeeksForGeeks" ;           // Create a matcher for the input String         Matcher matcher             = pattern                   .matcher(stringToBeMatched);           // Get the current matcher state         MatchResult result             = matcher.toMatchResult();         System.out.println( "Current Matcher: "                            + result);           while (matcher.find()) {             // Get the first index of match result             System.out.println(matcher.start( 1 ));         }     } } |
Current Matcher: java.util.regex.Matcher[pattern=(G*s) region=0,13 lastmatch=]
4
12
Example 2:
// Java code to illustrate start() method   import java.util.regex.*;   public class GFG {     public static void main(String[] args)     {           // Get the regex to be checked         String regex = "(G*G)" ;           // Create a pattern from regex         Pattern pattern             = Pattern.compile(regex);           // Get the String to be matched         String stringToBeMatched             = "GFGFGFGFGFGFGFGFGFG" ;           // Create a matcher for the input String         Matcher matcher             = pattern                   .matcher(stringToBeMatched);           // Get the current matcher state         MatchResult result             = matcher.toMatchResult();         System.out.println( "Current Matcher: "                            + result);           while (matcher.find()) {             // Get the first index of match result             System.out.println(matcher.start( 0 ));         }     } } |
Current Matcher: java.util.regex.Matcher[pattern=(G*G) region=0,19 lastmatch=]
0
2
4
6
8
10
12
14
16
18
Reference: Oracle Doc