匹配html 代码中的所有图片标签的正则表达式,取出所有图片标签,去掉其他标签

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了匹配html 代码中的所有图片标签的正则表达式,取出所有图片标签,去掉其他标签相关的知识,希望对你有一定的参考价值。

<ul>
<li><a href="images/001.jpg">
<img src="images/001.jpg" alt="" width="390" height="245" /></a>
<div class="eer3"><a href="images/001.jpg">点击查看详情</a></div>
<div class="a5"></div>
</li>
<li><a href="images/002.jpg">
<img src="images/002.jpg" alt="" width="390" height="245" /></a>
<div class="eer3"><a href="images/002.jpg">点击查看详情</a></div>
<div class="a5"></div>
</li>
<li><a href="images/003.jpg">
<img src="images/003.jpg" alt="" width="390" height="245" /></a>
<div class="eer3"><a href="images/003.jpg">点击查看详情</a></div>
<div class="a5"></div>
</li>
<li><a href="images/004.jpg">
<img src="images/004.jpg" alt="" width="390" height="245" /></a>
<div class="eer3"><a href="images/004.jpg">点击查看详情</a></div>
<div class="a5"></div>
</li>

</ul>

一楼的正则<img alt='' src='*.jpg' >这样的Img标签不能匹配
非img标签: <[^img].*?>
img标签:<img\s+.*?>追问

你的方法只能去掉标签,但如果我想边标签之间的文字内容一起去掉呢,如点击查看详情 段落内容
这些链接和文字全匹配,应该怎么写?

追答

不知道楼主是用什么语言,最好的办法还是先将img标签获取出来,然后将余下的html代码全部删。
去除a可以用这样的表达式:.*?
其实正则表达大式,里面的?号有很大作用,非贪婪匹配。
例如.* 可以匹配任何多的字符,但是如果.*?那么它就是非贪婪匹配匹配到碰到?后的字符时就结束匹配,就好比上面的.*?。

参考技术A my @img;
$str=local $/;<$file>;
while($str=~/<img\s+src="(.*)?"/gms)push @img,$1;
参考技术B @"(?is)(?<=<li>).*?<a href="?images?/.+?<img\s+src\b.+?(?=\s*</a>(?:<[/]?[^>]+>\s*)+</li>)"

RegexOptions.Global

正则表达式匹配img标签中的src获取地址

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class aa 

    public static void main(String[] args) 
        String htmlStr = "<img src=‘http://1231//1231/123/123.jpg‘ alt=‘图片‘>";
        Matcher m = Pattern.compile("src=\"?(.*?)(\"|>|\\s+)").matcher(htmlStr);
        String filePath = "";
        while(m.find())
            
            filePath = m.group(1);
        
        System.out.println(filePath);
        System.out.println(filePath.substring(filePath.lastIndexOf("/")+1,filePath.length()-1));
    

以上是关于匹配html 代码中的所有图片标签的正则表达式,取出所有图片标签,去掉其他标签的主要内容,如果未能解决你的问题,请参考以下文章

如何用正则表达式匹配除了img标签的所有其他标签 匹配所有html标签我知道: /<[^>]+>/g 关键排除img标签

php 正则匹配HTML标签以外的匹配词 并且不匹配A标签中的匹配词

PHP正则表达式取文本中间内容。

常用正则表达式爬取网页信息及HTML分析总结

正则表达式匹配关闭的 HTML 标记

php 正则表达式 匹配网站内容