正则表达式屏蔽 Java 中除前两位数字以外的字符
Regex to mask characters except first two digits in Java
在 Apex 中,我想编写一个正则表达式来执行以下操作:
source string: abcdefg
output string: ab*****
source string: 123456789
output string: 12*******
source string: a123d
output string: a1***
到目前为止我尝试过的:
String t= "salesforce";
String r = t.replaceAll("\w(?=\w{2})", "*");
system.debug("==r=="+r);
输出:
********ce
您可以使用下面的代码来实现这个技巧:
String t= "salesforce";
String r = t.replaceAll("(?<=..).", "*");
System.out.println("output: "+r);
输出:
output: sa********
说明:
(?<=..).
正则表达式将识别字符串中的每个字符,并遵守在它之前存在 2 个字符的约束,这将从第 3 个字符开始工作,直到字符串的末尾,如下所示,然后您只需用 *
替换这些字符
在 Apex 中,我想编写一个正则表达式来执行以下操作:
source string: abcdefg
output string: ab*****
source string: 123456789
output string: 12*******
source string: a123d
output string: a1***
到目前为止我尝试过的:
String t= "salesforce";
String r = t.replaceAll("\w(?=\w{2})", "*");
system.debug("==r=="+r);
输出:
********ce
您可以使用下面的代码来实现这个技巧:
String t= "salesforce";
String r = t.replaceAll("(?<=..).", "*");
System.out.println("output: "+r);
输出:
output: sa********
说明:
(?<=..).
正则表达式将识别字符串中的每个字符,并遵守在它之前存在 2 个字符的约束,这将从第 3 个字符开始工作,直到字符串的末尾,如下所示,然后您只需用 *