首页 > 编程语言 > 详细

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

时间:2018-01-09 19:58:17      阅读:271      评论:0      收藏:0      [点我收藏+]
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 连接地址)等

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!