Java 用于屏蔽字母数字字符串并显示最后 4 位的正则表达式
Java Regex to mask alphanumeric string and show last 4 digits
我有一个类似于以下任一内容的输入字符串:
- Z43524429
- 46D92S429
- 3488DFJ33
基本上字符串可以包含字母字符或数字。但是它不能包含符号,只能包含字母和数字。我想屏蔽它,使其看起来像这样:
- *****4429
- *****S429
- *****FJ33
我到处寻找 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})", "*");
我有一个类似于以下任一内容的输入字符串:
- Z43524429
- 46D92S429
- 3488DFJ33
基本上字符串可以包含字母字符或数字。但是它不能包含符号,只能包含字母和数字。我想屏蔽它,使其看起来像这样:
- *****4429
- *****S429
- *****FJ33
我到处寻找 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})", "*");