匹配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标签: <[^img].*?>
img标签:<img\s+.*?>追问
你的方法只能去掉标签,但如果我想边标签之间的文字内容一起去掉呢,如点击查看详情 段落内容
这些链接和文字全匹配,应该怎么写?
不知道楼主是用什么语言,最好的办法还是先将img标签获取出来,然后将余下的html代码全部删。
去除a可以用这样的表达式:.*?
其实正则表达大式,里面的?号有很大作用,非贪婪匹配。
例如.* 可以匹配任何多的字符,但是如果.*?那么它就是非贪婪匹配匹配到碰到?后的字符时就结束匹配,就好比上面的.*?。
$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标签