Ad

Regex To Mask Characters Except First Two Digits In Java

- 1 answer

In Apex, I want to write a regular expression to do the following:

source string: abcdefg
output string: ab*****

source string: 123456789
output string: 12*******

source string: a123d
output string: a1***

What I have tried so far:

String t= "salesforce"; 
String r = t.replaceAll("\\w(?=\\w{2})", "*"); 
system.debug("==r=="+r); 

output :

********ce
Ad

Answer

You can use the following code to make the trick:

String t= "salesforce"; 
String r = t.replaceAll("(?<=..).", "*"); 
System.out.println("output: "+r);

output:

output: sa********

Explanations:

(?<=..). the regex will identify every character from the string respecting the constraint that there exist 2 character before it, this will work from the 3rd character until the end of the string as shown hereunder, then you just replace those characters by a *

DEMO: https://regex101.com/r/gvMoDi/1/

Ad
source: stackoverflow.com
Ad