gpt4 book ai didi

java - 替换Java字符串中特定长度的子字符串

转载 作者:行者123 更新时间:2023-12-01 18:22:13 24 4
gpt4 key购买 nike

我需要解析一个字符串并屏蔽所有社会保障代码。 SSN 始终恰好是 9 位数字。就我的目的而言,如果我看到 9 位数字子字符串,我可以假设它是 SSN,或者至少假设它可以安全地屏蔽。但是,我不想屏蔽任何小于或大于 9 位数字的数字子字符串。

所以,这段代码让我很接近,但它找到 10 位数字字符串并屏蔽前 9 位数字。

String masked = myString.replaceAll( "\\d{9}", "XXXXXXXXX" );
  • 输入:cat123456789dog
  • 输出:catXXXXXXXXXdog

  • 输入:cat1234567890dog

  • 输出:catXXXXXXXXX0dog
  • 所需输出:cat1234567890dog

有没有办法使用 String replaceAll 方法,或者其他方法来完成我想要的事情?

最佳答案

您可以使用环顾四周来确保其长度为 9

(?<!\\d)\\d{9}(?!\\d)

Regex Example

  • (?<!\\d)消极地看着后面。确保长度为 9 的数字前面没有数字

  • (?!\\d)消极地展望 future 。确保数字后面也没有数字

  • 环顾四周将数字总长度限制为 9

使用 caputre 组作为

String masked = myString.replaceAll( "(\\D)\\d{9}(\\D)", "$1XXXXXXXXX$2" );

关于java - 替换Java字符串中特定长度的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27381169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com