输出结果如下:user client-id=***mask ***.主机端- id = * * *屏蔽* * *.修复了



为什么主机和用户字符串在输出中打印??

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)的作用

最新更新