zoukankan      html  css  js  c++  java
  • 文本去除html标签

    package com.csf.msnews.common.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|	|
    |
    ";// 定义空格回车换行符
    
        /**
         * @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 = htmlStr.replaceAll("
    
    ", "#&#");
            htmlStr = htmlStr.replaceAll("
    ", "#&#");
            htmlStr = htmlStr.replaceAll("
    ", "#&#");
            htmlStr = htmlStr.replaceAll("
    ", "#&#");
            htmlStr = htmlStr.replaceAll("<br/>", "#&#");
            htmlStr = htmlStr.replaceAll("</p>", "#&#");
            htmlStr = htmlStr.replaceAll("  ", "#&#");
    
            htmlStr = delHTMLTag(htmlStr);
            htmlStr = htmlStr.replaceAll("&nbsp;", "");
    
            int len = htmlStr.length();
            while (true) {
                htmlStr = htmlStr.replaceAll("#&##&#", "#&#");
                if (htmlStr.length() == len) {
                    break;
                } else {
                    len = htmlStr.length();
                }
            }
    
            return htmlStr;
        }
    
        public static void main(String[] args) {
            String str = "<P class=Para>  视觉(中国)文化发展股份有限公司</p><p class=Para> 111</p></p></p><a></p></p></p></p>222 投资者关系活动登记表</p><p class=Para>  无</p><p class=Para>  日 期 2017年03月16日</P>";
            // str = " aaa 
    
    
    
     春节过后";
            System.out.println(str);
            System.out.println(getTextFromHtml(str));
        }
    }
  • 相关阅读:
    【BZOJ 4581】【Usaco2016 Open】Field Reduction
    【BZOJ 4582】【Usaco2016 Open】Diamond Collector
    【BZOJ 4580】【Usaco2016 Open】248
    【BZOJ 3754】Tree之最小方差树
    【51Nod 1501】【算法马拉松 19D】石头剪刀布威力加强版
    【51Nod 1622】【算法马拉松 19C】集合对
    【51Nod 1616】【算法马拉松 19B】最小集合
    【51Nod 1674】【算法马拉松 19A】区间的价值 V2
    【BZOJ 2541】【Vijos 1366】【CTSC 2000】冰原探险
    【BZOJ 1065】【Vijos 1826】【NOI 2008】奥运物流
  • 原文地址:https://www.cnblogs.com/xiaolei2017/p/8989012.html
Copyright © 2011-2022 走看看