java代码 给一段字符串中包含多处ip地址的信息 进行脱敏,ip地址保留最后一部分
时间: 2023-02-16 12:09:42 浏览: 102
可以使用正则表达式来匹配所有的IP地址并替换成脱敏后的值。
例如:
```
String originalString = "这是一段包含多处IP地址的信息: 192.168.1.1, 10.0.0.1, 172.16.0.1";
String replacedString = originalString.replaceAll("(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.)\\d{1,3}", "$1***");
System.out.println(replacedString);
```
输出结果为: "这是一段包含多处IP地址的信息: 192.168.1.***, 10.0.0.***, 172.16.0.***"
代码中使用了正则表达式 `(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.)\\d{1,3}` 来匹配所有的IP地址,其中括号捕获了前三段的数字,再使用replaceAll()方法将捕获到的第一组数字后面加上***来进行替换。
相关问题
java代码 给一段字符串中包含多处ip地址的信息 进行脱敏,ip地址保留最后三部分
下面是一段可以在java代码中实现字符串中多处IP地址脱敏的代码:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MaskIp {
public static void main(String[] args) {
String input = "This is a string with IP address 192.168.1.1 and another IP address 10.0.0.1";
// 定义正则表达式模式
String pattern = "(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.)\\d{1,3}";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(input);
// 替换匹配到的IP地址
String masked = m.replaceAll("$1***");
System.out.println(masked);
}
}
```
输出结果为:
"This is a string with IP address 192.168.1.*** and another IP address 10.0.0.***"
该代码使用正则表达式匹配字符串中的IP地址,并使用replaceAll()方法将其中最后一段替换为***。
java代码 给一段字符串中包含多处ip地址的信息 进行脱敏,ip地址脱敏的规则是只保留最后一部分真实内容 ip地址可能是ipv4或者ipv6
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class IpDesensitization {
public static void main(String[] args) {
String s = "这是一段包含多处ip地址的字符串,192.168.1.1, 2001:0db8:85a3:0000:0000:8a2e:0370:7334";
String desensitized = desensitizeIp(s);
System.out.println(desensitized);
}
public static String desensitizeIp(String s) {
String ipv4Regex = "(\\d{1,3}\\.){3}\\d{1,3}";
String ipv6Regex = "[0-9a-fA-F:]{2,39}";
String replacement = "$1***";
return s.replaceAll(ipv4Regex, replacement).replaceAll(ipv6Regex, replacement);
}
}
```
上面是一段 Java 代码,用于脱敏包含多处 IP 地址的字符串。代码中定义了两个正则表达式,分别用于匹配 IPv4 和 IPv6 地址。在调用 `desensitizeIp` 方法时,会使用这两个正则表达式替换字符串中的 IP 地址。
阅读全文