import java.util.regex.Pattern;

 

/**

 * 过滤标签字符串,返回纯文本

 *

 */

public class ChangePlainText {

 

    public static void main(String[] args) {

 

        String test="<b>hi</b></br><h1>hello~</h1><哈哈>";

 

        String b=ChangePlainText.Html2Text(test);

 

        System.out.println(b);

    }

 

    public static String Html2Text(String inputString) {

        String htmlStr = inputString; // 含html标签的字符串

        String textStr = "";

        java.util.regex.Pattern p_script;

        java.util.regex.Matcher m_script;

        java.util.regex.Pattern p_style;

        java.util.regex.Matcher m_style;

        java.util.regex.Pattern p_html;

        java.util.regex.Matcher m_html;

 

        try {

            String regEx_script = "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>"; // 定义script的正则表达式{或<script[^>]*?>[\\s\\S]*?<\\/script>

                                                                                                        // }

            String regEx_style = "<[\\s]*?style[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?style[\\s]*?>"; // 定义style的正则表达式{或<style[^>]*?>[\\s\\S]*?<\\/style>

                                                                                                    // }

            String regEx_html = "<[^>]+>"; // 定义HTML标签的正则表达式

 

            p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);

            m_script = p_script.matcher(htmlStr);

            htmlStr = m_script.replaceAll(""); // 过滤script标签

 

            p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);

            m_style = p_style.matcher(htmlStr);

            htmlStr = m_style.replaceAll(""); // 过滤style标签

 

            p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);

            m_html = p_html.matcher(htmlStr);

            htmlStr = m_html.replaceAll(""); // 过滤html标签

 

            textStr = htmlStr;

 

        } catch (Exception e) {

            System.err.println("Html2Text: " + e.getMessage());

        }

 

        return textStr;// 返回文本字符串

    }

 

}

©著作权归作者所有:来自51CTO博客作者mb606fbfbce3fd6的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 210401 JavaScript 值传递与引用传递, 模板字面量, 标签函数, 解
  2. 第104天: Python 解析 XML
  3. OpenTSDB 底层 HBase 的 Rowkey 是如何设计的
  4. 禁止网页 切屏 切换标签
  5. 什么是JSTL标签?常用的标签库有哪些?
  6. Gateway网关过滤之后获取不到 HttpServletRequest
  7. [go-linq]-Go的.NET LINQ式查询方法
  8. Web前端技术分享:img标签与background插入图片的区别
  9. Selenium3自动化测试【16】元素定位之Tag

随机推荐

  1. Android开发 使用XML文件设置背景变化
  2. Android 性能优化之Java(Android)代码优
  3. Android项目从eclipse迁移到Android Stud
  4. [Android] IntentInjector
  5. Android播放器MediaPlayer与MediaRecorde
  6. android miscdevice(混杂设备)驱动编写注
  7. android设置EditText不可编辑内容,响应点
  8. TextView处理显示字数过长
  9. IPC进程间通信
  10. 使用Python开发Android应用程序:第一节 在