package com.linoer.utils;  

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern; /**
* HTML
* @author linoer
*/
public class HTMLSpirit {
/** * 去掉所有的HTML标签 * @param htmlStr * @return */
public static String delHTMLTag(String htmlStr) {
String regEx_script = "<script[^>]*?>[\\s\\S]*?<\\/script>"; // 定义script的正则表达式 String regEx_style = "<style[^>]*?>[\\s\\S]*?<\\/style>"; // 定义style的正则表达式 String regEx_html = "<[^>]+>"; // 定义HTML标签的正则表达式
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标签
return htmlStr.trim().replaceAll(" ", ""); // 返回文本字符串
}
/**
* 从HTML获取图片url
* @param htmlStr
* @return
*/
public static List<String> getImgStr(String htmlStr) {
String img = "";
Pattern p_image;
Matcher m_image;
List<String> pics = new ArrayList<String>();
String regEx_img = "<img.*src=(.*?)[^>]*?>"; // 图片链接地址
p_image = Pattern.compile(regEx_img, Pattern.CASE_INSENSITIVE);
m_image = p_image.matcher(htmlStr);
while (m_image.find()) {
img = img + "," + m_image.group();
Matcher m = Pattern.compile("src=\"?(.*?)(\"|>|\\s+)").matcher(img); // 匹配src
while (m.find()) {
pics.add(m.group(1));
}
}
return pics;
}
}

最新文章

  1. Excel表格解析
  2. Openresty 安装教程
  3. JS基础----&gt;js中ajax的使用
  4. Mac废纸篓 不能完全清空的有效解决方法
  5. Hadoop入门实践之从WordCount程序说起
  6. 第二百零九天 how can I 坚持
  7. kindeditor html代码过滤不能保存
  8. java新手笔记5 类
  9. Gradle DSL method found: ‘android()’错误
  10. [转]Kafka/Metaq设计思想学习笔记
  11. Oracle 经常使用的改动语句
  12. 解决!同一ajax请求获取的图片路劲,在谷歌浏览器能正确展示图片,在火狐浏览器则显示路径undefined
  13. IOS开发创建开发证书及发布App应用(八)——使用Application Loader工具上传应用
  14. vue视频学习笔记07
  15. 接口interface,接口继承implements
  16. java final关键字的详解
  17. excel上传下载
  18. C++多线程同步技巧(四)--- 信号量
  19. python - 计算器 程序练习
  20. 如何更改linux文件的拥有者及用户组(chown和chgrp)

热门文章

  1. 测试标题CSS样式
  2. 嵌入式02 STM32 实验07 串口通信
  3. 读文件时出现这个错误 &#39;utf-8&#39; codec can&#39;t decode byte 0xba in position 21: invalid start byte
  4. 【leetcode】347. Top K Frequent Elements
  5. Go基础编程实践(九)—— 网络编程
  6. Jenkins 远程启动nodejs失败,使用pm2守护Nodejs
  7. go 程序整个执行过程
  8. c# 拼接字符串根据逗号切割 后转换成集合或数组
  9. Vue.js详解
  10. echarts统计x轴区间的数值