All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.feingto.cloud.kit.EscapeHtmlKit Maven / Gradle / Ivy

There is a newer version: 2.5.2.RELEASE
Show newest version
package com.feingto.cloud.kit;

import org.springframework.util.StringUtils;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Html格式化工具类
 *
 * @author longfei
 */
public class EscapeHtmlKit {
    /**
     * 去除html格式,提取文字信息
     *
     * @param html 包含html格式的字符串
     * @return 去除html格式后的字符串
     */
    public static String escapeHtml(String html) {
        return escapeHtml(html, html.length(), "");
    }

    /**
     * 去除html格式,提取文字信息,按长度截取字符串末端用...代替
     *
     * @param html   包含html格式的字符串
     * @param length 提取长度,大于该长度用...代替
     * @return 去除html格式后的字符串
     */
    public static String escapeHtml(String html, int length) {
        return escapeHtml(html, length, "...");
    }

    /**
     * 去除html格式,提取文字信息,按长度截取字符串末端用ext的值代替
     *
     * @param html   包含html格式的字符串
     * @param length 提取长度,大于该长度用ext的值代替
     * @param ext    大于长度末端用ext的值代替
     * @return 去除html格式后的字符串
     */
    public static String escapeHtml(String html, int length, String ext) {
        if (!StringUtils.hasText(html))
            return "";
        String str = html.replaceAll("]+>", "");// 剔出的标签
        str = str.replaceAll("\\s*|\t|\r|\n", "");// 去除字符串中的空格,回车,换行符,制表符
        return str.length() <= length ? str : str.substring(0, length) + ext;
    }

    /**
     * 取得字符串里面的链接
     *
     * @param html 包含链接的字符串
     * @return List 链接集合
     */
    public static List parseUrl(String html) {
        String regex;
        List list = new ArrayList<>();
        regex = "src=\"(.*?)\"|href=\"(.*?)\"";
        Pattern pattern = Pattern.compile(regex, Pattern.DOTALL);
        Matcher matcher = pattern.matcher(html);
        while (matcher.find()) {
            //int begin = matcher.group().indexOf("\"") + 1;
            int begin = matcher.group().lastIndexOf("/") + 1;
            int end = matcher.group().lastIndexOf("\"");
            list.add(matcher.group().substring(begin, end));
        }
        return list;
    }

    /**
     * 取得字符串里面的图片链接
     *
     * @param html 包含图片链接的字符串
     * @return List 图片链接集合
     */
    public static List parseImgUrl(String html) {
        String regex;
        List list = new ArrayList<>();
        regex = "img.*?src=\"(.*?)\"";
        Pattern pattern = Pattern.compile(regex, Pattern.DOTALL);
        Matcher matcher = pattern.matcher(html);
        while (matcher.find()) {
            list.add(matcher.group(1));
        }
        return list;
    }

    /**
     * emoji表情替换
     *
     * @param source  原字符串
     * @param slipStr emoji表情替换成的字符串
     * @return 过滤后的字符串
     */
    public static String filterEmoji(String source, String slipStr) {
        if (StringUtils.hasText(source)) {
            return source.replaceAll("[\\ud800\\udc00-\\udbff\\udfff\\ud800-\\udfff]", slipStr);
        } else {
            return source;
        }
    }

    public static void main(String[] args) {
        String str = "

api/search/db(关键字查询)

\"\"请求示例\"\"


http://www.xxx.com/api/search/db?username=test&password=123456&keyword=a


请求方式


GET


请求参数


username: 用户名

password:密码

keyword:查询关键字


响应示例


统计结果网页


异常示例


{
    "statusCode": 300,
    "message": "参数不合法!",
    "data": null
}

"; System.out.println("去除html格式,提取文字信息"); System.out.println(escapeHtml(str)); System.out.println(escapeHtml(str, 200)); System.out.println(escapeHtml(str, 200, "......")); System.out.println("取得字符串里面的图片链接"); List list = parseImgUrl(str); for (String s : list) { System.out.println(s); } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy