Java正则表达式用于掩码字母数字字符串并显示最后4位数字

8
我有一个输入字符串,可能长成下面这样:
  • Z43524429
  • 46D92S429
  • 3488DFJ33
这个字符串可以包含字母和数字,但不能包含符号。我想将它掩盖,使它看起来像这样:
  • *****4429
  • *****S429
  • *****FJ33
我找遍了所有地方,以找到使用正则表达式掩盖的Java代码示例。我在Stack Overflow上找到了这篇文章,但它假设输入仅为数字。
我修改了正则表达式为/\w(?=\w{4})/g,以包括字符。它似乎在这里工作得很好。但是当我尝试在Java中实现它时,它不起作用。以下是我Java代码中的行:
String mask = accountNumber.replace("\\w(?=\\w{4})", "*");

口令最终与账户号码相同。因此,显然正则表达式不起作用。有什么想法吗?

6
使用 replaceAll 函数进行正则表达式替换。 - Reimeus
如果字符串始终具有相同的格式,则不需要正则表达式。构建一个新字符串,以五个 * 开头,并以原始字符串的最后四个字符结尾。 - Casimir et Hippolyte
顺便说一句,感谢你的问题。因为这个问题,我找到了用于字符串掩码的正则表达式。非常有帮助。 - Jigar
2个回答

5

1
使用 replaceAll 而不是 replace
String mask = accountNumber.replaceAll("\\w(?=\\w{4})", "*");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接