扫码一下
查看教程更方便
Regex类 find() 方法有两种方式,尝试查找与该模式匹配的输入序列的下一个子序列。
public boolean find()
// 或
public boolean find(int start)
start - 输入字符串中的起始索引。
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 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(): 6
Second Capturing Group, (foo) Match String end(): 3
First Capturing Group, (a*b) Match String end(): 12
Second Capturing Group, (foo) Match String end(): 9
First Capturing Group, (a*b) Match String end(): 17
Second Capturing Group, (foo) Match String end(): 14
First Capturing Group, (a*b) Match String end(): 12
Second Capturing Group, (foo) Match String end(): 9