Javaregex-matcher-find1

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

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

説明

  • java.time.Matcher.find(int start)*メソッドはこのマッチャーをリセットし、指定されたインデックスから開始して、パターンに一致する入力シーケンスの次のサブシーケンスを見つけようとします。

宣言

以下は* java.time.Matcher.find(int start)*メソッドの宣言です。

public boolean find(int start)

パラメーター

  • start -入力文字列の開始インデックス。

戻り値

指定されたインデックスで始まる入力シーケンスのサブシーケンスがこのマッチャーのパターンに一致する場合にのみtrue

例外

  • IndexOutOfBoundsException -指定されたインデックスを持つパターンにキャプチャグループがない場合。

次の例は、java.time.Matcher.find(int start)メソッドの使用方法を示しています。

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";
   private static String REPLACE = "-";

   public static void main(String[] args) {
      Pattern pattern = Pattern.compile(REGEX);

     //get a matcher object
      Matcher matcher = pattern.matcher(INPUT);

      if(matcher.find(6)) {
        //Prints the offset after the last character matched.
         System.out.println("First Capturing Group, (a*b) Match String end(): "+matcher.end());
         System.out.println("Second Capturing Group, (foo) Match String end(): "+matcher.end(1));
      }
   }
}

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

First Capturing Group, (a*b) Match String end(): 12
Second Capturing Group, (foo) Match String end(): 9