简体   繁体   中英

Java Regex to mask alphanumeric string and show last 4 digits

I have an input string that looks like any of the following:

  • Z43524429
  • 46D92S429
  • 3488DFJ33

Basically the string can contain alphabet characters or digits. However it cannot contain symbols, just letters and numbers. I would like to mask it so that it looks like this:

  • *****4429
  • *****S429
  • *****FJ33

I've looked everywhere to find an java code example that uses regex to mask this. I've found this post on stack but that assumes that the input is purely a number.

I adjusted the regex to /\\w(?=\\w{4})/g to include characters as well. It seems to work here . But when I try to implement it in java it doesn't work. Here's the line in my java code:

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

The mask ends up being the same as the accountNumber. So obviously the regex is not working. Any thoughts?

You're using replace , which doesn't use regular expressions.

Try replaceAll .

使用过的replaceAll替换

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM