String str5 = "8OABCE[34][AA]"; Pattern pattern = Pattern.compile("(\\[\\d+\\])(\\[[0-9a-zA-Z]+\\])$"); Matcher matcher = pattern.matcher(str5); while (matcher.find()) { //输出正则表达式过滤出来的内容 //matcher.group(0) 全字符串 //matcher.group(1)第一个括号里面的内容 //matcher.group(2)第二个括号里面的内容 System.out.println("----------" + matcher.group(1)); String str9 = matcher.group(1); String str10 = str5.replace(str9,""); System.out.println("----------" + str10); } String ss ="ooaaooo"; Pattern pattern1 = Pattern.compile("(o+)"); Matcher mt = pattern1.matcher(ss); //用while可以找到所有相匹配的,并输出 while(mt.find()){ System.out.println(mt.group(1) + "|||" + mt.start()); } //用if只能找到第一个相匹配,并输出 if(mt.find()){ System.out.println(mt.group(1) + "|||" + mt.start()); }