扫码一下
查看教程更方便
Regex类 start() 方法有两种方式,返回上一个匹配的开始索引。
public int start()
// 或
public int start(int group)
group - 此匹配器模式中捕获组的索引。
组捕获的第一个字符的索引,如果匹配成功但组本身不匹配,则返回-1。
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