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