代码工具如下:
package com.zjxf.utils;
import org.apache.commons.lang3.StringUtils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* html标签工具类
*
* @author fhx
* @date 2019/9/7 15:41
*/
public class HtmlTagUtil {
/**
* 定义script的正则表达式
*/
private static final String regEx_script = "<script[^>]*?>[\\s\\S]*?<\\/script>";
/**
* 定义style的正则表达式
*/
private static final String regEx_style = "<style[^>]*?>[\\s\\S]*?<\\/style>";
/**
* 定义HTML标签的正则表达式
*/
private static final String regEx_html = "<[^>]+>";
/**
* 定义空格回车换行符
*/
private static final String regEx_space = "\\s*|\t|\r|\n";
/**
* 定义一些特殊字符的正则表达式 如:
*/
private static final String regEx_special = "\\&[a-zA-Z]{1,10};";
/**
* 去除html标签
*
* @param htmlStr html内容
* @return 删除Html标签
*/
public static String delHTMLTag(String htmlStr) {
return baseFun(htmlStr, regEx_html);
}
/**
* 去除script标签
*
* @param htmlStr html内容
* @return 处理后的内容
*/
public static String delScriptTag(String htmlStr) {
return baseFun(htmlStr, regEx_script);
}
/**
* 去除空格回车标签
*
* @param htmlStr html内容
* @return 处理后的内容
*/
public static String delSpaceTag(String htmlStr) {
return baseFun(htmlStr, regEx_space);
}
/**
* 去除style标签
*
* @param htmlStr 标签内容
* @return 处理后的内容
*/
public static String delStyleTag(String htmlStr) {
return baseFun(htmlStr, regEx_style);
}
/**
* 去除 等特殊字符标签
*
* @param htmlStr 标签内容
* @return 处理后的内容
*/
public static String delNbspTab(String htmlStr) {
return baseFun(htmlStr, regEx_special);
}
/**
* 基础方法
*
* @param htmlStr html内容
* @param regex 正则表达式
* @return 处理后的内容
*/
private static String baseFun(String htmlStr, String regex) {
if (StringUtils.isBlank(htmlStr)) return "";
Pattern pStyle = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
Matcher mStyle = pStyle.matcher(htmlStr);
htmlStr = mStyle.replaceAll(StringUtils.EMPTY);// 空串
return htmlStr.trim();
}
}