Javaregex-matcher-start1

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

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

説明

  • java.util.regex.Matcher.start(int group)*メソッドは、前の一致操作中に特定のグループによってキャプチャされたサブシーケンスの開始インデックスを返します。

宣言

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

public int start(int group)

パラメーター

  • group -このマッチャーのパターンのキャプチャグループのインデックス。

戻り値

グループによってキャプチャされた最初の文字のインデックス。一致は成功したがグループ自体が何も一致しなかった場合は-1。

例外

  • IllegalStateException -一致がまだ試行されていない場合、または前の一致操作が失敗した場合。
  • IndexOutOfBoundsException -指定されたインデックスを持つパターンにキャプチャグループがない場合。

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

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

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

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

Second Capturing Group, (foo) Match String start(): 0
Second Capturing Group, (foo) Match String start(): 6
Second Capturing Group, (foo) Match String start(): 12