java replaceAll 的相仿group用法

java replaceAll 的类似group用法

replaceAll比较特殊的用法介绍一个:

eg:把中括号及期内容替换成原先的再加Extra

"abc[def]".replaceAll("(\\[.*\\])", "$1Extra")

 结果:abc[def]Extra

 

 其中$1相当于matcher.group(1)的作用。附一个matcher的例子:

 

Pattern p3 = Pattern.compile("a(b*)(c*)d");
String candidateString3 = "abbccd abbbcccd";
Matcher matcher3 = p3.matcher(candidateString3);
System.out.println(matcher3.groupCount());
while (matcher3.find()) {
	System.out.println(matcher3.start());
	System.out.println("Group 0 " + matcher3.group(0));
	System.out.println("Group 1 " + matcher3.group(1));
	System.out.println("Group 2 " + matcher3.group(2));
}

  

2
0
Group 0 abbccd
Group 1 bb
Group 2 cc
7
Group 0 abbbcccd
Group 1 bbb
Group 2 ccc