String的正则表达式,用于屏蔽除xml标记内容中的最后4位之外的数字

时间:2018-05-21 22:55:39

标签: java regex data-masking

这是一个帐号77787845456464645656547877

accountNumber1.replaceAll(“(desc> || desc \ s * [:] {2} \ s *?|)(\ d(?= \ d {4}))”,“$ 1XXXXXXXXXX $ 2”)这不起作用,我尝试了不同的方法没有结果.Pl检查,thx

2 个答案:

答案 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,其中除最后四位以外的所有数字都替换为*