首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex在HTML文档的图像标记中查找第一个图像

Regex在HTML文档的图像标记中查找第一个图像
EN

Stack Overflow用户
提问于 2011-07-07 23:36:21
回答 3查看 2K关注 0票数 1

在HTML文档中查找image标记中的第一个图像的正则表达式是什么?我之前的尝试并没有真正起作用,因为它们只是基于.jpg"进行匹配,并且没有考虑到边缘情况,比如在结束时具有缓存缓冲器时间戳的图像(asdf.jpg?581291823)

编辑:我使用的是Node.js。我想做HTML解析,但是我们有很多文档要解析,所以我不确定HTML解析是否是最好的选择,因为它需要相当多的时间。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-08 00:19:43

正如anubhava正确指出的那样,正则表达式在解析HTML时并不是100%可靠的。然而,对于一次性任务(即非生产代码),正则表达式解决方案可以做得很好(而且速度也很快):

将来自第一个IMG元素的图像URL文件名(sans查询或片段)捕获到组$1

<img\b[^>]+?src\s*=\s*['"]?([^\s'"?#>]+)

请注意,在某些边缘情况下,这是不起作用的。

编辑:">"添加到被取反的SRC属性值字符类。

票数 3
EN

Stack Overflow用户

发布于 2011-07-08 00:17:02

这是一个很好的例子,说明了使用正则表达式时棘手且不可靠的,以及使用HTML解析器时几乎非常简单的。为此使用解析器,而不是regex。

您还没有说您正在使用哪种语言,但是我听说过一些关于Beautiful SoupHTML PurifierHTML Agility Pack的非常好的消息,它们分别使用Python和.NET。相信我--使用save yourself some pain并使用它们。

编辑:如果你必须使用正则表达式,那就使用@‘s吧。

票数 3
EN

Stack Overflow用户

发布于 2011-07-08 00:04:42

抓取html,一个简单且非常松散的正则表达式是:/\<img.*?src="(.*?)"/

使用真正的DOM解析器当然是首选方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6613178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档