Java正则表达式过滤html中的标签

今天在写项目中发现,发布一篇文章包含图片时数据库里存入的包含html标签,在文章列表中会显示这些标签,而不是过滤掉这些标签只展示内容,记录一下后台过滤的方法:

package com.util;

/**去除内容中html标签*/
public class HtmlSplit {
    public static void main(String[] args) {
        String html = "<p></p><p><font style=\"vertical-align: inherit;\"><font style=\"vertical-align: inherit;\">小号sssssssssssssssssssss</font></font></p>";
        String htmlSplit = getHtmlSplit(html);
        System.out.println(htmlSplit);
    }
    /**目前去除<a></a>,<img>,<p></p>,<br>,<div></div>,<iframe></iframe>,<span></span>,<h></h>,<font></font>标签,将其替换为空*/
    public static String getHtmlSplit(String html){
        html=html.replaceAll("<a href[^>]*>", "");
        html=html.replaceAll("</a>", "");
        html=html.replaceAll("<img[^>]*>", "");
        html=html.replaceAll("<p[^>]*>", "");
        html=html.replaceAll("</p>", "");
        html=html.replaceAll("<br[^>]*>", "");
        html=html.replaceAll("<div[^>]*>", "");
        html=html.replaceAll("</div>", "");
        html=html.replaceAll("<iframe src[^>]*>", "");
        html=html.replaceAll("</iframe>", "");
        html=html.replaceAll("<span style[^>]*>", "");
        html=html.replaceAll("</span>", "");
        html=html.replaceAll("<h1[^>]*>", "");
        html=html.replaceAll("</h1>", "");
        html=html.replaceAll("<h2[^>]*>", "");
        html=html.replaceAll("</h2>", "");
        html=html.replaceAll("<h3[^>]*>", "");
        html=html.replaceAll("</h3>", "");
        html=html.replaceAll("<h4[^>]*>", "");
        html=html.replaceAll("</h4>", "");
        html=html.replaceAll("<h5[^>]*>", "");
        html=html.replaceAll("</h5>", "");
        html=html.replaceAll("<font style[^>]*>", "");
        html=html.replaceAll("</font>", "");
        html=html.replaceAll("&nbsp", "");
        return html;
    }
}

运行结果是:

上面是把html对应的标签进行替换了,也可以自行添加需要替换的标签

其实数据库可以再设置一个去除标签后的字段来保存这个内容,列表展示时只展示这个字段的内容,可以作为工具类使用:

 

这是通过后台进行正则表达式的过滤,也可以前台。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值