Please note, this is a STATIC archive of website www.tutorialspoint.com from 11 May 2019, cach3.com does not collect or store any user information, there is no "phishing" involved.
Tutorialspoint

1 Answer
Rishi Raj

The Matcher can be reset using the java.util.regex.Matcher.reset() method. This method returns the reset Matcher.

A program that demonstrates the method Matcher.reset() in Java regular expressions is given as follows:

Example

 Live Demo

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MainClass {
   public static void main(String args[]) {
      Pattern p = Pattern.compile("(a*b)");
      Matcher m = p.matcher("caaabcccab");
      System.out.println("The input string is: caaabcccab");
      System.out.println("The Regex is: (a*b)");
      System.out.println();
      while (m.find()) {
         System.out.println(m.group());
      }
      m.reset();
      System.out.println("\nThe Matcher is reset");
      while (m.find()) {
         System.out.println(m.group());
      }
   }
}

Output

The input string is: caaabcccab
The Regex is: (a*b)
aaab
ab
The Matcher is reset
aaab
ab

Now let us understand the above program.

The subsequence “(a*b)” is searched in the string sequence "caaabcccab". Then the find() method is used to find if the subsequence is in the input sequence and the required result is printed. The Matcher.reset() method is used to reset the Matcher. Then he find() method is used again and the required result is printed.

A code snippet which demonstrates this is as follows:

Pattern p = Pattern.compile("(a*b)");
Matcher m = p.matcher("caaabcccab");
System.out.println("The input string is: caaabcccab");
System.out.println("The Regex is: (a*b)");
System.out.println();
while (m.find()) {
   System.out.println(m.group());
}
m.reset();
System.out.println("\nThe Matcher is reset");
while (m.find()) {
   System.out.println(m.group());
}

Advertisements

We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy.