java代码正则过滤去除 JSON 中的 Base64 字段
时间: 2024-02-09 17:12:18 浏览: 185
如果你想从 JSON 字符串中过滤掉所有的 Base64 字段,可以使用正则表达式来实现。以下是一个示例:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String jsonString = "{\"name\": \"John\", \"age\": 30, \"photo\": \"data:image/png;base64,iVBORw0KGg...\" }";
// 使用正则表达式过滤掉 Base64 字段
String filteredString = jsonString.replaceAll("\".*?\":\\s*\"data:[^\"]+;base64,[^\"]+\"", "");
System.out.println(filteredString); // 输出:{"name": "John", "age": 30}
}
}
```
在上面的示例中,我们定义了一个 JSON 字符串 `jsonString`,其中包含一个 Base64 字段。我们使用 `replaceAll` 函数来匹配所有符合正则表达式的字符串,并将其替换为空字符串。最后输出过滤后的字符串 `filteredString`。
正则表达式 `\".*?\":\\s*\"data:[^\"]+;base64,[^\"]+\"` 的含义是:匹配以双引号包裹的任意字符串作为字段名,后面紧跟着冒号和一个以 `"data:` 开头、`;base64,` 结尾的字符串。这个字符串中间部分是一个 Base64 编码的数据,使用 `[^\"]` 来表示除了双引号以外的任意字符。
阅读全文