The java.util.regex.Matcher.toMatchResult() method returns the match state of this matcher as a MatchResult. The result is unaffected by subsequent operations performed upon this matcher.


Following is the declaration for java.util.regex.Matcher.toMatchResult() method.

public MatchResult toMatchResult()

Return Value

a MatchResult with the state of this matcher.


The following example shows the usage of java.util.regex.Matcher.toMatchResult() method.

package com.tutorialspoint;

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

public class MatcherDemo {
   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 offset after the last character of the subsequence captured by the given group during this match.
         System.out.println("Second Capturing Group - Match String - end(1): "+result.end(1));         

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

Second Capturing Group - Match String - end(1): 26