正则表达式去掉html标签

package com.xx.content.questions.xx.util;

import java.util.regex.Pattern;

import org.apache.commons.lang3.StringUtils;

/**
 * @Author: lipf
 * @Title:
 * @Date: 2019/5/20 19:12
 */
public class RemoveHTML {

    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_special;
        java.util.regex.Matcher m_special;
        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的正则表达式{或]*?>[\\s\\S]*?<\\/script> }
            String regEx_style = "<[\\s]*?style[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?style[\\s]*?>"; //定义style的正则表达式{或]*?>[\\s\\S]*?<\\/style> }
            String regEx_html = "<[^>]+>"; //定义HTML标签的正则表达式
            String regEx_special = "\\&[a-zA-Z]{1,10};";// 定义一些特殊字符的正则表达式 如:     

            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_special = Pattern.compile(regEx_special,Pattern.CASE_INSENSITIVE);
            m_special = p_special.matcher(htmlStr);
            htmlStr = m_special.replaceAll(""); //过滤style标签


            p_html = Pattern.compile(regEx_html,Pattern.CASE_INSENSITIVE);
            m_html = p_html.matcher(htmlStr);
            htmlStr = m_html.replaceAll(""); //过滤html标签
            htmlStr = htmlStr.replace("  ", "");
            htmlStr = htmlStr.replace("\n", "");
            htmlStr = htmlStr.replace("\t", "");
            textStr = htmlStr.trim();
            textStr = htmlStr;
        }catch(Exception e){

        }
        return textStr;//返回文本字符串
    }
    /**
     * @author lipf
     * 去掉一些杂乱符号
     * @method handlerErrorMark
     * @param msg
     * @return
     * @return String
     * @date 2019年7月8日 上午10:44:52
     */
    public static String handlerErrorMark(String msg) 
	{
		if (StringUtils.isNotEmpty(msg)) {
			msg = msg.replaceAll("学科网", "");
			msg = msg.replaceAll("\\[来源:17 教育网\\]", "");
			msg = msg.replaceAll("17 教育网", "");
			msg = msg.replaceAll("\\[w%ww.17\\*jaioy\\^u~.com\\]计算\\[17育网\\]", "");
			msg = msg.replaceAll("\\[17育网~%\\]", "");
			msg = msg.replaceAll("\\[来源:学。科。网\\]", "");
			msg = msg.replaceAll("科网\\]", "");
			msg = msg.replaceAll("&#.*?;", "");
		}
		return msg;
	}

}

 

你可能感兴趣的:(正则表达式)