Java使用正则表达式删除所有HTML标签的方法示例

本文实例讲述了Java使用正则表达式删除所有HTML标签的方法。分享给大家供大家参考,具体如下:

package com.xz.cxzy.utils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class HtmlUtil {
  private static final String regEx_script = "<script[^>]*?>[\\s\\S]*?<\\/script>"; // 定义script的正则表达式
  private static final String regEx_style = "<style[^>]*?>[\\s\\S]*?<\\/style>"; // 定义style的正则表达式
  private static final String regEx_html = "<[^>]+>"; // 定义HTML标签的正则表达式
  private static final String regEx_space = "\\s*|\t|\r|\n";//定义空格回车换行符
  /**
   * @param htmlStr
   * @return
   * 删除Html标签
   */
  public static String delHTMLTag(String htmlStr) {
    Pattern p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);
    Matcher m_script = p_script.matcher(htmlStr);
    htmlStr = m_script.replaceAll(""); // 过滤script标签
    Pattern p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);
    Matcher m_style = p_style.matcher(htmlStr);
    htmlStr = m_style.replaceAll(""); // 过滤style标签
    Pattern p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);
    Matcher m_html = p_html.matcher(htmlStr);
    htmlStr = m_html.replaceAll(""); // 过滤html标签
    Pattern p_space = Pattern.compile(regEx_space, Pattern.CASE_INSENSITIVE);
    Matcher m_space = p_space.matcher(htmlStr);
    htmlStr = m_space.replaceAll(""); // 过滤空格回车标签
    return htmlStr.trim(); // 返回文本字符串
  }
  public static String getTextFromHtml(String htmlStr){
    htmlStr = delHTMLTag(htmlStr);
    htmlStr = htmlStr.replaceAll(" ", "");
    htmlStr = htmlStr.substring(0, htmlStr.indexOf("。")+1);
    return htmlStr;
  }
  public static void main(String[] args) {
    String str = "<div style='text-align:center;'> 整治“四风”  清弊除垢<br/><span style='font-size:14px;'> </span><span style='font-size:18px;'>公司召开党的群众路线教育实践活动动员大会</span><br/></div>";
    System.out.println(getTextFromHtml(str));
  }
}

PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:

JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript

正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java正则表达式技巧大全》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

(0)

相关推荐

  • java使用正则表达式过滤html标签

    前段时间开发的时候要读取一篇文章的简介内容(也就是前200个字符),使用了隐藏字段,可能有人就要问了,那后台也是可以截取字符的啊,那是因为编辑器里面包含了html标签,所以后台就需要处理html标签的正则表达式,前些天上网搜了下,发现有人写好的一个类,给大家共享下,不要闲小弟落伍了... import java.util.regex.Matcher; import java.util.regex.Pattern; /** * <p> * Title: HTML相关的正则表达式工具类 * <

  • java正则表达式解析html示例分享

    复制代码 代码如下: package work; import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.util.regex.Matcher;import java.util.regex.Pattern; import org.apache.commons.httpclient.DefaultH

  • java正则匹配HTML中a标签里的中文字符示例

    本文实例讲述了java正则匹配HTML中a标签里的中文字符.分享给大家供大家参考,具体如下: 今天群里一位朋友问到了一个正则表达式的问题,有如下内容: <a href='www.baidu.comds=id32434#comment'rewr>特432</a> 453543 <a guhll,,l>a1特123你好123吗?</a> <a href=id=32434#comment'ewrer>特2</a> <a>标签中的

  • Java正则表达式过滤出字母、数字和中文

    1.Java中过滤出字母.数字和中文的正则表达式 (1)过滤出字母的正则表达式 [^(A-Za-z)] (2) 过滤出 数字 的正则表达式 [^(0-9)] (3) 过滤出 中文 的正则表达式 [^(\\u4e00-\\u9fa5)] (4) 过滤出字母.数字和中文的正则表达式 [^(a-zA-Z0-9\\u4e00-\\u9fa5)] 2.实例源码 ** * @Title:FilterStr.java * @Package:com.you.dao * @Description:Java中过滤数

  • java正则表达式获取指定HTML标签的指定属性值且替换的方法

    实例如下: public static String repDomain(String source, String domain, String element, String attr) { String img = ""; Pattern p_image; Matcher m_image; String regEx_img = "<" + element + "[^<>]*?\\s" + attr + "=['\

  • Java基于正则表达式获取指定HTML标签指定属性值的方法

    本文实例讲述了Java基于正则表达式获取指定HTML标签指定属性值的方法.分享给大家供大家参考,具体如下: 有时可能会有这样的需求,从HTML页面获取指定标签的指定属性值,可以通过第三方库解析来获取,但是这样相对比较麻烦! 如果使用正则表达式,那么就变得简单了.代码如下: package com.mmq.regex; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import

  • JAVA过滤标签实现将html内容转换为文本的方法示例

    本文实例讲述了JAVA过滤标签实现将html内容转换为文本的方法.分享给大家供大家参考,具体如下: /** * 把html内容转为文本 * @param html 需要处理的html文本 * @param filterTags 需要保留的html标签样式 * @return */ public static String trimHtml2Txt(String html, String[] filterTags){ html = html.replaceAll("\\<head>[\

  • java去掉html标签 必须首先去掉双引号的正则

    复制代码 代码如下: public static String htmlToStr(String htmlStr){ String result = ""; boolean flag = true; if(htmlStr==null){ return null; } htmlStr = htmlStr.replace("\"", ""); //去掉引号 char[] a = htmlStr.toCharArray(); int leng

  • Java中正则表达式去除html标签

    Java中正则表达式去除html的标签,主要目的更精确的显示内容,比如前一段时间在做类似于博客中发布文章功能,当编辑器中输入内容后会将样式标签也传入后台并且保存数据库,但是在显示摘要的时候,比如显示正文的前50字作为摘要,那么这时需要去除所有html标签,然后在截取50字,所以就通过了Java正则表达式实现了如下方法,代码如下: 注:这是Java正则表达式去除html标签方法. private static final String regEx_script = "<script[^>

  • Java/Js下使用正则表达式匹配嵌套Html标签

    通用 HTML 标签区配正则 最近看网站日志,发现有人在博客上转了我不知道几年前写的一个匹配 HTML 标签的正则,刚好最近也在做一些相关的事情,顿时来了兴趣.就拿回来改改,成了下面这样,可能会有一些 case 遗漏,欢迎修改,已知在内嵌 <script> 复杂内容的处理能力较弱,不过对纯 HTML 来说已经够用,拿来做一些分析工具还是不错滴. 复制代码 代码如下: <script type="text/javascript"> var str = "

随机推荐