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



Description

The java.util.regex.Matcher.usePattern(Pattern newPattern) method changes the Pattern that this Matcher uses to find matches with.

Declaration

Following is the declaration for java.util.regex.Matcher.usePattern(Pattern newPattern) method.

public Matcher usePattern(Pattern newPattern)

Parameters

  • newPattern − The new pattern used by this matcher.

Return Value

this matcher.

Exceptions

  • IllegalArgumentException − If newPattern is null.

Example

The following example shows the usage of java.util.regex.Matcher.usePattern(Pattern newPattern) 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";

   public static void main(String[] args) {
      // create a pattern
      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));
      }  
      matcher.reset();
      matcher.usePattern(Pattern.compile("(a*b)(foob)"));
      
      while(matcher.find()) {
         //Prints the start index of the subsequence captured by the given group.
         System.out.println("Second Capturing Group, (fooab) 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
Second Capturing Group, (fooab) Match String start(): 12
javaregex_matcher.htm
Advertisements