java代码 给一段字符串中包含多处ip地址的信息 进行脱敏,ip地址保留最后一部分
时间: 2023-02-16 19:09:42 浏览: 57
可以使用正则表达式来匹配所有的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地址保留最后一部分
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MaskIP {
public static void main(String[] args) {
String str = "这是一段包含IP地址的字符串,IP地址是192.168.1.100";
String mask = maskIP(str);
System.out.println(mask);
}
public static String maskIP(String str) {
String regEx = "(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.)(\\d{1,3})";
Pattern pattern = Pattern.compile(regEx);
Matcher matcher = pattern.matcher(str);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
String matched = matcher.group();
String masked = matcher.group(1) + "***";
matcher.appendReplacement(sb, masked);
}
matcher.appendTail(sb);
return sb.toString();
}
}
```
这段代码首先使用正则表达式匹配字符串中的IP地址,然后使用字符串缓冲区将匹配到的IP地址替换为保留最后一部分的脱敏版本。运行结果为 "这是一段包含IP地址的字符串,IP地址是192.168.1.***"