```java public static void main(String[] args) { Pattern p = Pattern.compile("(\d+)([A-Z]+)"); // 分成了两组:数字和字母 Matcher matcher = p.matcher("33HH44JJ");
// 整个字符串都要匹配正则表达式才为true
// 如果只有前半部分匹配成功,下标将移动到下次要匹配的位置,调用下行的方法后,再调用find()方法只能找到一个匹配的子串44JJ
// System.out.println(matcher.matches());
if (matcher.find()){ // 找到一个匹配的子串,下标将移动到下次要匹配的位置
System.out.println("匹配第一个子串"); // 33HH
System.out.println(matcher.group(0)); // 输出第一个子串的所有内容:33HH
System.out.println(matcher.group(1)); // 输出第一个子串的第一组:33
System.out.println(matcher.group(2)); // 输出第一个子串的第二组:HH
}
if (matcher.find()){
System.out.println("匹配第二个子串"); // 44JJ
System.out.println(matcher.group(0)); // 输出第二个子串的所有内容:44JJ
System.out.println(matcher.group(1)); // 输出第二个子串的第一组:44
System.out.println(matcher.group(2)); // 输出第二个子串的第二组:JJ
}
}
```