正则过滤去除 JSON 中的 Base64 字段
时间: 2024-02-09 14:12:17 浏览: 21
如果你想从 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` 表示全局匹配。
相关问题
java代码正则过滤去除 JSON 中的 Base64 字段
如果你想从 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 编码的数据,使用 `[^\"]` 来表示除了双引号以外的任意字符。
js 正则 匹配base64 删除base64
要使用JavaScript正则表达式来匹配并删除base64格式的内容,可以使用正则表达式的replace方法。首先,需要编写一个匹配base64格式的正则表达式,并将其作为replace方法的第一个参数。然后,将第二个参数设置为空字符串,即可将匹配到的base64内容删除。
下面是一个示例代码,用于匹配并删除字符串中的base64内容:
```javascript
const str = "这是一段包含base64格式图片的字符串";
const base64Regex = /data:image\/.*;base64,/g;
const result = str.replace(base64Regex, "");
console.log(result);
```
在这个示例中,我们使用了正则表达式`/data:image\/.*;base64,/g`来匹配base64格式的内容。然后,使用replace方法将匹配到的内容替换为空字符串,即删除了base64内容。
请注意,如果要删除多个base64内容,需要将正则表达式的`g`修饰符添加到正则表达式末尾,以匹配所有的base64内容。
希望这个例子对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [JavaScript 正则匹配字符串中 base64 图片](https://blog.csdn.net/HH18700418030/article/details/123408039)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]