【问题标题】:Regex to mask characters except first two digits in Java正则表达式来屏蔽除 Java 中前两位数字以外的字符
【发布时间】:2018-02-28 07:48:59
【问题描述】:

在 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

【问题讨论】:

  • 到目前为止你尝试过什么?
  • 为什么是正则表达式?
  • 字符串 t= 'salesforce';字符串 r = t.replaceAll('\\w(?=\\w{2})', '*'); system.debug('==r=='+r);输出:********ce
  • @RaJu 请把它放在问题中。
  • 请给出一个表达式以获得所需的输出

标签: java regex salesforce apex


【解决方案1】:

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

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

输出:

output: sa********

说明:

(?&lt;=..). 正则表达式将识别字符串中的每个字符,遵守它之前存在 2 个字符的约束,这将从第 3 个字符开始工作,直到字符串结尾,如下所示,然后您只需将这些字符替换为*

演示https://regex101.com/r/gvMoDi/1/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-06
    • 1970-01-01
    • 1970-01-01
    • 2020-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-27
    相关资源
    最近更新 更多