Javaregex-matcher-usepattern

提供:Dev Guides
移動先:案内検索

java.util.regex.Matcher.usePattern()メソッド

説明

  • java.util.regex.Matcher.usePattern(Pattern newPattern)*メソッドは、このMatcherが一致の検索に使用するパターンを変更します。

宣言

以下は、* java.util.regex.Matcher.usePattern(Pattern newPattern)*メソッドの宣言です。

public Matcher usePattern(Pattern newPattern)

パラメーター

  • newPattern -このマッチャーが使用する新しいパターン。

戻り値

このマッチャー。

例外

  • IllegalArgumentException -newPatternがnullの場合。

次の例は、java.util.regex.Matcher.usePattern(Pattern newPattern)メソッドの使用法を示しています。

package com.finddevguides;

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));
      }
   }
}

上記のプログラムをコンパイルして実行すると、次の結果が生成されます-

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