来源于:https://www.androiddev.net/java%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E5%8E%BB%E9%99%A4html%E4%B8%AD%E6%89%80%E6%9C%89%E7%9A%84%E6%A0%87%E7%AD%BE%E5%92%8C%E7%89%B9%E6%AE%8Ahtml%E5%AD%97%E7%AC%A6%EF%BC%88%E4%BB%A5/

  1. package com.comcons.utils;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.FileNotFoundException;
  5. import java.io.FileReader;
  6. import java.io.IOException;
  7. import java.util.regex.Pattern;
  8.  
  9. public class ReduceHtml2Text {
  10.  
  11. /**
  12. * 删除Html标签
  13. * @param inputString
  14. * @return
  15. */
  16. public static String removeHtmlTag(String inputString) {
  17. if (inputString == null)
  18. return null;
  19. String htmlStr = inputString; // 含html标签的字符串
  20. String textStr = "";
  21. java.util.regex.Pattern p_script;
  22. java.util.regex.Matcher m_script;
  23. java.util.regex.Pattern p_style;
  24. java.util.regex.Matcher m_style;
  25. java.util.regex.Pattern p_html;
  26. java.util.regex.Matcher m_html;
  27. java.util.regex.Pattern p_special;
  28. java.util.regex.Matcher m_special;
  29. try {
  30. //定义script的正则表达式{或<script[^>]*?>[\\s\\S]*?<\\/script>
  31. String regEx_script = "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>";
  32. //定义style的正则表达式{或<style[^>]*?>[\\s\\S]*?<\\/style>
  33. String regEx_style = "<[\\s]*?style[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?style[\\s]*?>";
  34. // 定义HTML标签的正则表达式
  35. String regEx_html = "<[^>]+>";
  36. // 定义一些特殊字符的正则表达式 如:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  37. String regEx_special = "\\&[a-zA-Z]{1,10};";
  38.  
  39. p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);
  40. m_script = p_script.matcher(htmlStr);
  41. htmlStr = m_script.replaceAll(""); // 过滤script标签
  42. p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);
  43. m_style = p_style.matcher(htmlStr);
  44. htmlStr = m_style.replaceAll(""); // 过滤style标签
  45. p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);
  46. m_html = p_html.matcher(htmlStr);
  47. htmlStr = m_html.replaceAll(""); // 过滤html标签
  48. p_special = Pattern.compile(regEx_special, Pattern.CASE_INSENSITIVE);
  49. m_special = p_special.matcher(htmlStr);
  50. htmlStr = m_special.replaceAll(""); // 过滤特殊标签
  51. textStr = htmlStr;
  52. } catch (Exception e) {
  53. e.printStackTrace();
  54. }
  55. return textStr;// 返回文本字符串
  56. }
  57.  
  58. /**
  59. * 测试用的main函数
  60. * @param args
  61. */
  62. public static void main(String[] args) {
  63. StringBuffer sb = new StringBuffer();
  64. try {
  65. FileReader fr = new FileReader("D:/test.html");
  66. BufferedReader br = new BufferedReader(fr);
  67. String s = "";
  68. while((s = br.readLine())!=null){
  69. sb.append(s);
  70. }
  71. } catch (FileNotFoundException e) {
  72. // TODO Auto-generated catch block
  73. e.printStackTrace();
  74. } catch (IOException e) {
  75. // TODO Auto-generated catch block
  76. e.printStackTrace();
  77. }
  78. String ssss = ReduceHtml2Text.removeHtmlTag(sb.toString());
  79. System.out.println(ssss);
  80. }
  81. }

java正则表达式去除html中所有的标签和特殊HTML字符(以&开头的)的更多相关文章

  1. js去除字符串中所有html标签及&nbsp符号

    近日在做项目的时候,经常会在页面上处理一些数据.结果发现自己js掌握的并不是很好.那就在这里记录js的点点滴滴吧. 1. 去除字符串中的 html 标签 function delHtmlTag(str ...

  2. java正则表达式提取地址中的ip和端口号

    由于我需要用到java正则表达式提取地址中的ip和端口号,所以我就写了一个demo,测试一下,下面是demo public class Test0810_1 { public static void ...

  3. 正则去除字符串中的html标签,但不去除<br>标签

    一.去除html标签 filterHTMLTag(msg) { var msg = msg.replace(/<\/?[^>]*>/g, ''); //去除HTML Tag msg ...

  4. 正则表达式替换字符串中的html标签

    正则表达式替换字符串中的html标签 ··· var newStr = str.replace(/<[^>]+>/g, ''); ···

  5. java正则表达式去除html标签

    当我们用ckeditor或其他一些在线文本编辑器的时候 内容里会有很多的标签 如下片段: <p><img alt="" src="/img/upload ...

  6. php去除字符串中的HTML标签

    php自带的函数可以去除/删除字符串中的HTML标签/代码. strip_tags(string,allow):函数剥去 HTML.XML 以及 PHP 的标签. 参数:string,必填,规定要检查 ...

  7. 去除字符串中的HTML标签

    背景:Kindeditor内容保存在数据库中的类型是text,包含文字和HTML标签. 需求:显示内容的前50个字(纯文字内容) 方法:将字段查出去除标签,截取前50 import java.util ...

  8. 使用Java正则表达式提取字符串中的数字一例

    直接上代码: String reg = "\\D+(\\d+)$"; //提取字符串末尾的数字:封妖塔守卫71 == >> 71 String s = monster. ...

  9. 运用正则表达式在Asp中过滤Html标签代码的四种不同方法

    Function RemoveHTML(strHTML)Dim objregExp, Match, MatchesSet objRegExp = New RegexpobjRegExp.IgnoreC ...

随机推荐

  1. MFC中设备描述表dc的使用

    以下代码我是在View类中实现的: /** 利用平台SDK实现画线功能 // 首先获得窗口的设备描述表 HDC hdc; hdc = ::GetDC( m_hWnd ); //调用的是平台SDK的成员 ...

  2. java去除字符串后面的\0

    java去除字符串后面的\0 private String filterCode(String string) { if (string != null) { string = string.trim ...

  3. KDiff

    BeyondCompare是收费的,用了一段时间不能用了.找到一个 KDiff做对比工具,也很好用. 在这里下载: http://sourceforge.net/projects/kdiff3/fil ...

  4. Spring 集成 redistemplate

    jar包 <version.clients.jedis>2.7.2</version.clients.jedis><version.data.redis>1.6.2 ...

  5. mybatis 是如何与数据表对应上的 ?

    MyBatis也需要进行表和实体 的关联.我们查询的是表,返回的结果是实体类.这之间有一个对应关系. 如果说实体类的属性和表的列名一一对应,名字一样,那就自动解决了这个问题.但是如果实体类的属性和表的 ...

  6. Wifidog的协议梳理

    上篇文章结合wifidog的协议,讲解了如何实现wifi认证.这篇文章会详细讲解一下wifidog的协议. wifidog的认证流程图 用户连接WIFI会跳转到以下地址: 1 2 3 4 5 6 7 ...

  7. linux 常用命令--------雪松整理

    linux 常用命令--------雪松整理 博客: http://hi.baidu.com/quanzhou722/blog错误在所难免,还望指正!========================= ...

  8. 异步 JS: Callbacks, Listeners, Control Flow Libs 和 Promises【转载+翻译+整理】

    http://sporto.github.io/blog/2012/12/09/callbacks-listeners-promises/ 或 http://www.ruanyifeng.com/bl ...

  9. ArcGIS 后台服务器抛出异常

    ArcGIS工具箱是一个非常经典的工具应用,它就像一个做过很多项目.技术不断丰富的大神.以至于,现在ESIR与ITT公司合作,搞得新版的ENVI都有工具箱这样的界面了. 抛出异常 并不是每一个问题都能 ...

  10. MSSQL 2005/2008 日志压缩清理方法小结

    适用于SQL Server 2005的方法 --------------------------------------------- 复制代码 代码如下: USE DNName GO 1,清理日志 ...