这是一个帐号77787845456464645656547877
accountNumber1.replaceAll(“(desc> || desc \ s * [:] {2} \ s *?|)(\ d(?= \ d {4}))”,“$ 1XXXXXXXXXX $ 2”)这不起作用,我尝试了不同的方法没有结果.Pl检查,thx
答案 0 :(得分:2)
没有正则表达式的方法:
char[] cs = accountNum.toCharArray();
Arrays.fill(cs, 0, cs.length-4, '*');
String masked = new String(cs);
答案 1 :(得分:1)
一种方法是用*
替换每个数字,前提是后跟四个或更多其他数字。使用正向查找执行最后一部分,例如
myString.replaceAll("\\d(?=\\d{4})", "*");
返回myString
,其中除最后四位以外的所有数字都替换为*
。