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

Java正则表达式屏蔽字母数字字符串并显示最后4位数字,java,regex,string,masking,Java,Regex,String,Masking,我有一个如下所示的输入字符串: Z43524429 46D92S429 3488DFJ33 基本上,字符串可以包含字母字符或数字。但是,它不能包含符号,只能包含字母和数字。我想把它伪装成这样: *****4429 *****S429 *****FJ33 我到处都找过一个java代码示例,它使用正则表达式来掩盖这一点。我已经在堆栈上找到了,但这假设输入纯粹是一个数字 我将正则表达式调整为/\w(?=\w{4})/g,以包含字符。它似乎起作用了。但是,当我尝试用java实现它时,它不起作用。

我有一个如下所示的输入字符串:

  • Z43524429
  • 46D92S429
  • 3488DFJ33
基本上,字符串可以包含字母字符或数字。但是,它不能包含符号,只能包含字母和数字。我想把它伪装成这样:

  • *****4429
  • *****S429
  • *****FJ33
我到处都找过一个java代码示例,它使用正则表达式来掩盖这一点。我已经在堆栈上找到了,但这假设输入纯粹是一个数字

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

String mask = accountNumber.replace("\\w(?=\\w{4})", "*");
掩码最终与accountNumber相同。显然,正则表达式不起作用。有什么想法吗?

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


尝试。

使用replaceAll覆盖replace

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

对regex使用
replaceAll
如果字符串的格式始终相同,则不需要正则表达式。构建一个新字符串,以五个
*
开头,以原始字符串的最后四个字符结尾。顺便说一句,谢谢你的问题。正因为如此,我找到了用于字符串屏蔽的正则表达式。非常有帮助。。