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