正则表达式用于掩盖除Java中前两位数字之外的字符

时间:2018-02-28 07:49:00

标签: java regex salesforce apex

在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

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码来制作技巧:

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

<强>输出:

output: sa********

<强>说明:

(?<=..).正则表达式将识别字符串中的每个字符,这些字符符合前面有2个字符的约束,这将从第3个字符到字符串结尾,如下所示,然后你只需要替换那些*

的字符数

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