【问题标题】:Java Regex to mask alphanumeric string and show last 4 digitsJava 正则表达式来屏蔽字母数字字符串并显示最后 4 位数字
【发布时间】:2016-01-06 11:43:16
【问题描述】:

我有一个如下所示的输入字符串:

  • Z43524429
  • 46D92S429
  • 3488DFJ33

基本上,字符串可以包含字母字符或数字。但是它不能包含符号,只能包含字母和数字。我想掩盖它,使它看起来像这样:

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

我到处寻找使用正则表达式来掩盖这一点的 java 代码示例。我在堆栈上找到了this post,但这假设输入纯粹是一个数字。

我将正则表达式调整为 /\w(?=\w{4})/g 以包含字符。它似乎工作here。但是当我尝试在java中实现它时它不起作用。这是我的 java 代码中的一行:

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

掩码最终与 accountNumber 相同。所以显然正则表达式不起作用。有什么想法吗?

【问题讨论】:

  • replaceAll 用于正则表达式
  • 如果字符串始终具有相同的格式,则不需要正则表达式。构建一个以五个* 开头并以原始字符串的最后四个字符结尾的新字符串。
  • 谢谢你的问题顺便说一句。因此,我找到了用于字符串屏蔽的正则表达式。很有帮助..

标签: java regex string masking


【解决方案1】:

使用 replaceAll 而不是 replace

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

【讨论】:

    【解决方案2】:

    您正在使用replace,它不使用正则表达式。

    试试replaceAll

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-01
      • 2021-06-01
      • 2020-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多