为什么主机和用户字符串在输出中打印??
import java.util.regex.Pattern;
import java.util.regex.Matcher;
class String_Match4
{
public static void main(String args[])
{
String input = "user client-id=12345.host client-id=745896.some fix client-num=12564";
Pattern p1 = Pattern.compile("(client-id=)(\d+)");
Matcher m1 = p1.matcher(input);
StringBuffer result = new StringBuffer();
System.out.println(result);
while (m1.find()) {
m1.appendReplacement(result, m1.group(1) + "***masked***");
}
m1.appendTail(result);
System.out.println(result);
}
}
实际上,你正在将它们添加到StringBuffer对象"result "中。这就是Matcher.appendReplacement(sb,replacementString)的作用