public class Test {

    public static void main(String[] args) {
String source = "<p><img src=\"https://xxxxx/xxx/xxxx/182cd48c587651767921868181f66ca8.jpg\" />sdfasdfasdfsadfasdfasdfasdfasdfasdf</p><img src=\"https://xxxxx/xxxx/182cd48c587651767921868181f66ca8sdf.jpg\" />";
System.out.println(getImgStr(source));
String htmlStr = "<p><video controls=\"controls\" durationtime=\"72\" filesize=\"27117469\" height=\"200px\" poster=\"https://xxxxxx/b439b0281450abce7f13b2920da04346.png\" src=\"https://xxxxxxxxxx/b439b0281450abce7f13b2920da04346.mp4\" style=\"\">&nbsp;</video></p>"; System.out.println(getVideoStr(htmlStr));
} public static Set<String> getImgStr(String htmlStr) {
Set<String> pics = new HashSet<>();
String img = "";
Pattern p_image;
Matcher m_image;
String regEx_img = "<img.*src\\s*=\\s*(.*?)[^>]*?>";
p_image = Pattern.compile(regEx_img, Pattern.CASE_INSENSITIVE);
m_image = p_image.matcher(htmlStr);
while (m_image.find()) {
// 得到<img />数据
img = m_image.group();
// 匹配<img>中的src数据
Matcher m = Pattern.compile("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)").matcher(img);
while (m.find()) {
pics.add(m.group(1));
}
} return pics;
} public static Map<String, String> getVideoStr(String htmlStr) {
Map<String, String> pics = new HashMap<String, String>();
String regEx_video="<video.*poster\\s*=\\s*(.*?)[^>]*?src\\s*=\\s*(.*?)[^>]*?>";
Pattern p = Pattern.compile(regEx_video,Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(htmlStr);
String video="";
Map<String, String> map = new HashMap<String, String>();
while (m.find()) {
video=m.group();
Matcher mPoster = Pattern.compile("poster\\s*=\\s*\"?(.*?)(\"|>|\\s+)").matcher(video);
Matcher mSrc = Pattern.compile("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)").matcher(video);
String poster ="";
String src="";
while (mPoster.find()){
poster=mPoster.group(1);
}
while (mSrc.find()){
src=mSrc.group(1);
}
map.put("poster", poster);
map.put("src", src);
}
return map;
}
}

												

Java 正则表达式提取标签中的属性(src 连接地址)等的更多相关文章

  1. 使用Java正则表达式提取字符串中的数字一例

    直接上代码: String reg = "\\D+(\\d+)$"; //提取字符串末尾的数字:封妖塔守卫71 == >> 71 String s = monster. ...

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

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

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

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

  4. php正则表达式匹配img中任意属性的方法

    经常和图片打交道,不得不用到一些提取图片中scr.alt.title.等的属性,这里总结给大家一些常用的,感觉还不错,比较通用! PHP正则表达式匹配img中任意属性PHP 复制代码代码如下: < ...

  5. img标签中alt属性与title属性在seo的作用-摘自网友

    img标签中alt属性与title属性作用,也许大家比较迷惑,现在给大家举例说明.alt属性是图片的替换文字.title属性规定元素的额外信息,有视觉效果. 目录 alt属性 title属性 ie和f ...

  6. JSTL的forEach标签中的属性具体含义

    JSTL的forEach标签在JSP页面经常替代Java脚本的循环语句,生成多个记录的信息.一般只需 一个一个的展示记录即可,有些需要获取当前记录的索引.在需要获取当前记录的索引的时候可能 有点麻烦, ...

  7. a标签中href属性引起的页面不跳转问题

    先简单描述问题,今天在做一个简单的提交页面的时候,碰到了跳转不了的问题.其中a标签的形式<a href="" onclick="submit()"> ...

  8. html的meta总结,html标签中meta属性使用介绍(转)

    html的meta总结,html标签中meta属性使用介绍 2014年11月5日 5928次浏览 引子 之前的我的博客中对于meta有个介绍,例如:http://www.haorooms.com/po ...

  9. 浅析网页meta标签中X-UA-Compatible属性的使用

    今天有一个做开发的朋友突然问你知道很多网站上面加入的X-UA-Compatible属性的意义么?其实这个在以前还专门花了一点时间来验证我自己的想法,结果也确实如自己所预想的那样,八九不离十,当然有一点 ...

随机推荐

  1. BZOJ 2653: middle 主席树 二分

    https://www.lydsy.com/JudgeOnline/problem.php?id=2653 因为是两个方向向外延伸所以不能对编号取前缀和(这里只有前缀和向后传递的性质,不是实际意义的和 ...

  2. 用Win32编写发送消息至Notepad++的程序

    这次利用Win32编程写一个发送"Win32 Assembly,My First SendMessage Program !" 每个程序要发送消息至另一个程序的时候,通常使用Sen ...

  3. N!(N的阶乘)最末位非0的求解方法

    问题是求关于N!的最后一位非0位, 如3!=6,最后一位非0位为6, 5!=120, 最后一位非0位为2.怎么样快速的求出最后一位非0位呢? 最朴素的想法就是先求出N!的结果,再求出结果的最后一位非0 ...

  4. php <a href></a>链接地址中是php变量,链接文本也是php变量的代码处理方法

    1.所用php变量名为$recent_tests,是一个二维数组,示例如下: $recent_tests[0]["test_url"] = www.baidu.com $recen ...

  5. Linux下访问window挂载的磁盘

    点击window挂在的磁盘,如下图左侧"文档". 出现如下错误: Error mounting /dev/sda3 .... Command-line `mount -t &quo ...

  6. cocos2dx 字符串拼接

    ;i<;i++){ ]; sprintf(str,"%d",i); ]; strcpy(totalFilename, "game_loading") ; ...

  7. spring---transaction(3)---源代码分析(事务的管理器PlatformTransactionManager)

    写在前面 由于实现事务功能的方式各不相同,Spring进行了统一的抽象,形成了PlatformTransactionManager事务管理器顶级接口(平台事务管理器),事务的提交.回滚等操作全部交给它 ...

  8. Hibernate与MyBatis的对比总结

    最近做了一个Hibernate与MyBatis的对比总结,希望大家指出不对之处. 第一章     Hibernate与MyBatis Hibernate 是当前最流行的O/R mapping框架,它出 ...

  9. [Database] Redis 随笔

    Redis 随笔 1. 特点 非关系数据库 non-relational database 内存数据库 高性能 主从复制 可持久化存储 发布与订阅 支持脚本 2. 数据类型5种 STRING 可以是字 ...

  10. (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。) (Microsoft SQL Server,错误: 233)

    ------------------------------ 无法连接到 IFCA-LIUWEI/SQL2005. ------------------------------其他信息: 已成功与服务 ...