Matcher usePattern() method in Java with Examples

JavaObject Oriented ProgrammingProgramming

The java.util.regex.Matcher class represents an engine that performs various match operations. There is no constructor for this class, you can create/obtain an object of this class using the matches() method of the class java.util.regex.Pattern.

The usePattern() method of the Matcher class accepts a Pattern object representing a new regex pattern and uses it to find matches.


import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class UsePatternExample {
   public static void main(String[] args) {
      Scanner sc = new Scanner(;
      System.out.println("Enter input text: ");
      String input = sc.nextLine();
      String regex = "[#%&*]";
      //Creating a pattern object
      Pattern pattern = Pattern.compile(regex);
      //Creating a Matcher object
      Matcher matcher = pattern.matcher(input);
      int count =0;
      while(matcher.find()) {
      //Retrieving Pattern used
      System.out.println("The are "+count+" special characters [# % & *] in the given text");
      //Building a pattern to accept 5 t 6 characters
      Pattern newPattern = Pattern.compile("\\A(?=\\w{6,15}\\z)");
      //Switching to new pattern
      matcher = matcher.usePattern(newPattern);
      if(matcher.find()) {
         System.out.println("Given input contain 6 to 15 characters");
      } else {
         System.out.println("Given input doesn't contain 6 to 15 characters");


Enter input text:
The are 3 special characters [# % & *] in the given text
Given input doesn't contain 6 to 15 characters
Published on 21-Nov-2019 07:21:45