关于pattern,matcher的各个函数有javadoc没啥好说的。
不过还是有一点需要强调强调,第一是这个group,其实有groupCount+1组
group(0)对应的是整个正则表达式匹配部分,group(1)~group(groupCount)则是小括号内匹配部分。
而且这个分组的对象,是一次find以后,正则表达式匹配到的那一段字符串
比如一个String ,(s1)xxx(s2)有s1,s2两部分符合要求,那么一次find以后,所有group都是在S1内部的
第二次find后,所有group都是在S2内部的内容
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexTest {
public static void printMatched(String regex, String source) {
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(source);
while (m.find()) {
for (int i = 0; i <= m.groupCount(); i++) {
System.out.println(m.group(i));
}
}
}
public static void main(String[] arg) {
RegexTest.printMatched(".*(//1)>",
"
sdfsdf");}
}