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

Java Regex to mask alphanumeric string and show last 4 digits

我有一个类似于以下任一内容的输入字符串:

基本上字符串可以包含字母字符或数字。但是它不能包含符号,只能包含字母和数字。我想屏蔽它,使其看起来像这样:

我到处寻找 java 使用正则表达式来掩盖这一点的代码示例。我在堆栈上找到了 this post 但这假设输入纯粹是一个数字。

我将正则表达式调整为 /\w(?=\w{4})/g 以包含字符。它似乎有效 here。但是当我尝试在 java 中实现它时,它不起作用。这是我的 java 代码中的一行:

String mask = accountNumber.replace("\w(?=\w{4})", "*");

掩码最终与帐号相同。很明显正则表达式不起作用。有什么想法吗?

您正在使用 replace,它不使用正则表达式。

尝试replaceAll

使用 replaceAll 而不是 replace

String mask = accountNumber.replaceAll("\w(?=\w{4})", "*");