Java 正则表达式提取标签中的属性(src 连接地址)等

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;    }}



原文地址:https://www.cnblogs.com/austinspark-jessylu/p/8252936.html

时间: 2024-10-09 02:02:42

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

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

http://stackoverflow.com/questions/2367381/extract-numbers-from-a-string-java Pattern p = Pattern.compile(\\d+); 使用这个会有空字符串出现 Pattern p = Pattern.compile("-?\\d+"); 这是OK,

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

今天有一个做开发的朋友突然问你知道很多网站上面加入的X-UA-Compatible属性的意义么?其实这个在以前还专门花了一点时间来验证我自己的想法,结果也确实如自己所预想的那样,八九不离十,当然有一点点的偏差.我做的项目中也并不是每个项目中都使用该属性.那么我们首先来看看几个知名站点,他们也使用了这个 上面时淘宝的,下面是百度的. 都可以发现在head中又一个meta,里面有一个X-UA-Compatible的属性,而且确实非常多的网站中在使用.当然也有很多网站是在开发的时候不管三七二十一给加上

img标签中alt属性与title属性

alt属性 1.alt属性是考虑到不支持图像显示或者图像显示被关闭的浏览器的用户,以及视觉障碍的用户和使用屏幕阅读器的用户.当图片不显示的时候,图片的替换文字.2.alt属性值得长度必须少于100个英文字符3.alt属性是img标签的必须属性,如果没有特别意义的图片,可以写4.alt属性是搜索引擎判断图片与文字是否相关的重要依据,alt属性添加到img主要的目的才是为了SEO title属性 1.title属性并不是必须的.2.title属性规定元素的额外信息,有视觉效果,当鼠标放到文字或是图片

applicationContext.xml文件中&lt;bean&gt;标签中property属性用法说明

<bean name="useraaa" class="com.maple.bean.User"> <property name="name"> <value>小强</value> </property> <property name="age"> <value>26</value> </property> <pr

C#正则表达式提取HTML中IMG标签的SRC地址

一般来说一个 HTML 文档有很多标签,比如"<html>"."<body>"."<table>"等,想把文档中的 img 标签提取出来并不是一件容易的事.由于 img 标签样式变化多端,使提取的时候用程序寻找并不容易.于是想要寻找它们就必须写一个非常健全的正则表达式,不然有可能会找得不全,或者找出来的不是正确的 img 标签.我们可以从 HTML 标签的格式去想应该怎么建这个正则表达式.首先要想一下 img

C#正则表达式提取HTML中IMG标签中的SRC地址

百度到的一个,这里就直接贴了 http://blog.csdn.net/smeller/article/details/7108502#comments 一般来说一个 HTML 文档有很多标签,比如“<html>”.“<body>”.“<table>”等,想把文档中的 img 标签提取出来并不是一件容易的事.由于 img 标签样式变化多端,使提取的时候用程序寻找并不容易.于是想要寻找它们就必须写一个非常健全的正则表达式,不然有可能会找得不全,或者找出来的不是正确的 im

爬虫(四):正则表达式(提取str中网址)

3.采用beatifulsoup与re正则表达式一起使,提取html中的一些href的链接 http://cuiqingcai.com/1319.html 4.如何利用正则表达式边界匹配

Meta标签中的属性及含义

一.Meta标签中的format-detection属性及含义 format-detection翻译成中文的意思是“格式检测”,顾名思义,它是用来检测html里的一些格式的,那关于meta的format-detection属性主要是有以下几个设置: meta name="format-detection" content="telephone=no" meta name="format-detection" content="email

C#正则表达式提取文本中以逗号间隔的数据

使用正则表达式提取文本数据到内存是很方便的技术,下面通过一个例子介绍一下如何使用正则表达式提取文本 文本中内容格式 1,2,3,4,5 2,2,2,2,2 3,3,3,3,3 C#代码如下 public List<List<string>> GetDataCSV(string path) {         string pattern = @"\d+"; List<List<string>> data = new List<Lis