需求:将网页分享给其他人,JShare的分享模板如下:

其中有标题(红色)、内容(黄色)、图片(绿色),但是接口中没有给图片的URL,而html格式的内容中有<img src="http://……">标签,需要去内容中自己提取第一张图片作为分享的图标,如下:

所以,这个时候我们的需求就一目了然了:用正则表达式从繁杂的内容中找到我们需要的图片。

解决:
1、正则表达式:(http://jszx-jxpt.cuit.edu.cn/JavaAPI/java/util/regex/Pattern.html)官方API,供查询了解
2、代码查找:
一、先找到<img src="">标签,用到的正则表达式("<img.*?>")
代码如下:

public static List<String> getMatchString(){List<String> pics = new ArrayList<>(); // 因文件可能有多张图片,故用集合来存储结果Pattern compile = null;if (isDistinguish){ // isDistinguish:是否区分大小写compile = Pattern.compile("<img.*?>"); // "<img.*?>" : 获取标签的正则}else{compile = Pattern.compile("<img.*?>", Pattern.CASE_INSENSITIVE);}Matcher matcher = compile.matcher(string); // string:后台返的内容,图片就是从中提取的while (matcher.find()){String img = matcher.group();pics.add(img);}return pics;
}

运行,得到结果如下:

可以看出,本文有三张图片

二、再拿到标签中的地址,直接可以使用,代码如下:

List<String> img_url = new ArrayList<>();
/**
* img : 上面打印的标签内容,将它直接提取为我们要的http……
*
* "\"http?(.*?)(\"|>|\\s+)" : 获取src中 "" 图片地址的正则
*/
Matcher m = Pattern.compile("\"http?(.*?)(\"|>|\\s+)").matcher(img);
m.find();
String url = m.group()
img_url.add(url.substring(1, url.length()-1));

运行,得到的结果如下:

可以看出,直接光秃秃的图片地址裸露在脸前,可以直接用了

最后贴出完整代码

    /*** regex:获取<img src="">标签的正则("<img.*?>")* string:提取图片标签的内容* isDistinguish:是否区分大小写*/public static List<String> getMatchString(String regex, String string, boolean isDistinguish){List<String> pics = new ArrayList<>();Pattern compile = null;if (isDistinguish){compile = Pattern.compile(regex);}else{compile = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);}Matcher matcher = compile.matcher(string);while (matcher.find()){String img = matcher.group();
//            pics.add(img); // 如果只需要标签,那到这一步就可以了,如果直接需要图片URL,copy代码到最后/*** reg_html_img_src_http: 获取src中 "" 图片地址的正则("\"http?(.*?)(\"|>|\\s+)")* * 获取标签中src的正则表达式("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)")*/Matcher m = Pattern.compile(reg_html_img_src_http).matcher(img);m.find();String group = m.group();pics.add(group.substring(1, group.length() - 1));}return pics;}

java正则表达式提取html中的图片标签img src=相关推荐

  1. java正则表达式提取字符串中的中文信息

    package com.tool; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Patte ...

  2. java正则表达式提取字符串中的数字

    http://stackoverflow.com/questions/2367381/extract-numbers-from-a-string-java Pattern p = Pattern.co ...

  3. java 正则表达式 提取ip_java正则表达式提取地址中的ip和端口号

    由于我需要用到java正则表达式提取地址中的ip和端口号,所以我就写了一个demo,测试一下,下面是demo public class Test0810_1 { public static void ...

  4. 正则表达式提取markdown中图片链接(提取图片链接作为文章首图)

    网上搜使用正则表达式提取md中的图片链接作为文章首图 没找到好用的 只好自己写了一个 最大缺点 要自己去除括号 只能获取最后一个的url 以后有空再搞 let url = markdown.repla ...

  5. java提取word中的图片

    一.项目中需要用到word的导入,word 里面的内容由图片,文本,公式等,步骤为:将文档另存为xml格式 1.提取图片,如下是word xml 中的图片标签,具体分析下内容,首先需要获取 w:dra ...

  6. Java 添加、提取PDF中的图片

    Spire.Cloud.SDK for Java提供了PdfImagesApi接口可用于添加图片到PDF文档addImage().提取PDF中的图片extractImages(),具体操作步骤和Jav ...

  7. java 正则表达式提取html纯文本

    本文来自我的个人博客: java 正则表达式提取html纯文本 做内容的大家都知道,从html中直接提取纯文本是一个非常大的问题.现将我做的正则匹配贴上: import java.util.regex ...

  8. 01. 利用正则表达式提取文章中的所有英文单词

    利用正则表达式提取文章中的所有英文单词 1.先创建一个Pattern对象, 模式对象,可以理解成一个正则表达式对象 Pattern pattern = Pattern.compile("[a ...

  9. Java正则表达式提取字符的方法实例

    正好遇到一个需求需要将字符串中特定的字符全部提取出来,这个如果是按常规的字符串处理的话非常的繁琐.于是想到用正则表达式来完成,对java正则表达式提取字符的方式实例感兴趣的朋友一起学习吧 正好遇到一个 ...

最新文章

  1. ssl证书是由什么组成?ssl证书是什么?
  2. linux 用户行为审计update1
  3. vc 添加打开文件对话框并读取文件
  4. Python利用pymysql连接Mysql数据库
  5. 【百战GAN】GAN也可以拿来做图像分割,看起来效果还不错?
  6. [Android Pro] 通过IMSI判断手机是移动、联通、电信
  7. Linux 进程后台运行的几种方式 screen
  8. 2006年2月8日 再见,Borland
  9. C++笔记(3)——string.h相关的一些小知识
  10. python wms_webGIS实践:4_2_python django整合geoserver wms服务
  11. JVM初学之JVM的垃圾回收机制与垃圾回收器
  12. 随想录(工业软件和消费级软件的区别)
  13. 2.5.1.2、ImportBeanDefinitionRegistrar 注册BeanDefinition
  14. 安全随笔1:谨慎一次MD5值的可被穷举性
  15. linux内核分支,新闻|Linux 内核分支 2.4 版结束生命周期
  16. android 可拖拽控件,安卓实现任意控件view可拖拽,并监听拖拽和点击事件,可自动拉回屏幕边缘...
  17. PPT转图片/PDF-实用干货
  18. LeetCode 到底怎么刷?GitHub 上多位大厂程序员亲测的高效刷题方式
  19. 《微服务设计》(二)---- 演变式架构师
  20. html菱形开头做无序,css3 做菱形

热门文章

  1. springboot 对接sap接口,不生成连接配置文件文件的方法。
  2. 用lwip发送大量数据时,遇到的问题解答记录
  3. php 处理上百万条的数据库如何提高处理查询速度
  4. 准备在App Store上发布您的应用程序
  5. 花火,汪峰,鲍家街43号
  6. kettle日志监控
  7. 车牌识别系统连接不到后台服务器,车牌识别管理系统 车辆无法识别处理方法...
  8. 【运动传感器】Madgwick算法(下)
  9. git指令大全git生成压缩包git生成某次commit的补丁(见九)
  10. img src 引入base64格式数据 显示图片