You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Java正则表达式移除HTML文件中的二进制数据

用Java正则移除HTML中的二进制数据标签内容

没问题,我来帮你搞定这个需求。先看你的示例,二进制数据是包裹在<TEXT>标签里,以begin 644开头、end结尾的整块内容。我们可以用正则精准定位并移除这个块,同时保留正常的文本<TEXT>标签。

第一步:构建精准匹配的正则表达式

我们需要匹配的是包含base64格式二进制数据的<TEXT>标签块,对应的正则字符串是:

"<TEXT>\\s*begin 644.*?end\\s*</TEXT>"

这里几个关键细节要注意:

  • \\s*:用来匹配begin 644前后、end前后的空白或换行,避免因为格式问题匹配失败
  • .*?:用非贪婪模式匹配任意字符,这样只会匹配到第一个end对应的<TEXT>块,不会误吞后面正常的文本标签
  • 必须启用Pattern.DOTALL模式,让.能匹配换行符——毕竟二进制数据是多行的,没有这个模式正则跨不了行

第二步:Java代码实现示例

下面是完整的可运行代码,直接就能用:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class BinaryHtmlCleaner {
    public static void main(String[] args) {
        // 替换成你的实际HTML内容
        String rawHtml = "<HTML> <BODY STYLE=\"font: 10pt Times New Roman, Times, Serif\"> <TEXT> begin 644 image_002.jpg M_]C_X 02D9)1@ ! 0 0 ! #_VP!# @&!@<&!0@'!P<)\"0@*#!0-# L+ M#!D2$P\\4'1H?'AT:'!P@)\"XG(\"(L(QP<*#<I+# Q-#0T'R<Y/3@R/\"XS-#+_ MVP!# 0D)\"0P+#!@-#1@R(1PA,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R ,Z4]1]: %HHHIB/_9 end </TEXT> <TEXT>losses occurring in the third quarter and from weather </TEXT> </BODY>";
        
        // 编译正则,启用DOTALL模式
        Pattern binaryPattern = Pattern.compile("<TEXT>\\s*begin 644.*?end\\s*</TEXT>", Pattern.DOTALL);
        Matcher matcher = binaryPattern.matcher(rawHtml);
        
        // 移除匹配到的二进制块
        String cleanedHtml = matcher.replaceAll("");
        
        // 输出清理后的结果
        System.out.println(cleanedHtml);
    }
}

代码逻辑说明

  • Pattern.DOTALL:核心配置,没有它的话,正则里的.只能匹配单行字符,根本抓不到多行的二进制数据
  • 非贪婪匹配.*?:防止正则“贪心”地从第一个<TEXT>一直匹配到最后一个</TEXT>,确保只移除包含二进制的那个标签块
  • 替换为空字符串:直接把整个包含二进制的<TEXT>块删掉,如果你想保留<TEXT>标签但清空内容,把replaceAll("")改成replaceAll("<TEXT></TEXT>")就行

运行结果

执行代码后,输出的清理后HTML会是:

<HTML> <BODY STYLE="font: 10pt Times New Roman, Times, Serif">  <TEXT>losses occurring in the third quarter and from weather </TEXT> </BODY>

完全保留了正常的文本内容,二进制数据块被彻底移除。

内容的提问来源于stack exchange,提问作者Sky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:24:29