怎么用正则表达式从HTML中匹配img标签的图片地址

   2023-02-08 学习力0
核心提示:这篇文章主要介绍“怎么用正则表达式从HTML中匹配img标签的图片地址”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用正则表达式从HTML中匹配img标签的图片地址”文章能帮助大家解决问题。分析每个网站中展示

这篇文章主要介绍“怎么用正则表达式从HTML中匹配img标签的图片地址”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用正则表达式从HTML中匹配img标签的图片地址”文章能帮助大家解决问题。

分析

每个网站中展示图片的地方,无非就是img标签或者style中background-image和background,先解决img标签中的图片。
首先,地址在标签的src属性之中,所以找寻src的位置是必须的。但是不只有img标签拥有src属性,video和style也同样拥有src属性。因此,只匹配src的位置是不够,还得确保这个src的位置在img标签中。

然后,就是匹配src后面的地址,匹配地址的方法已经有许多文章描述过了,不再多说,但本文中用了一个比较取巧的方式去匹配。

总的思路就是先匹配src的位置,在获取图片地址。

正则表达式

  • 首先是匹配src的位置,既然是找位置,那就需要用的正则表达式中预查(?),因为需要的图片地址是在src后面,所以用反向肯定预查,所以初步确定正则表达式可写成:

/(?<=判断条件)/ 至于反向肯定预查的判断条件,就是在img之后的src,所以正则表达式改成如下: /(?<=(img src="))/ 之所以匹配src=", 是因为想要直接就匹配到地址的开头位置,于是就顺手加上。
但是,因为img和src之间可能还存在class或者其他自定义属性,所以还要加上这些可能存在字符的匹配。但是因为这些字符的种类比较多,如双引号"",英文、数字、甚至是中文等等,一一匹配过于麻烦,有个取巧的方式就是匹配非>。
众所周知,>在HTML中是一个标签的结尾,所以它不可能出现在img标签内的img字符和src字符的中间,所以匹配位置的正则表达式可写成: /(?<=(img[^>]*src="))/

怎么用正则表达式从HTML中匹配img标签的图片地址

可以看到,能够成功找到图片地址的开头位置。

  • 既然位置找到了,那剩下的就是匹配地址了。这里可以使用其他相关文章说的匹配地址的正则表达式,但是和上面一样,同样可以取巧。
    HTML标签中,图片地址是以双引号"开头和结尾的,上面的匹配位置已经匹配到图片开头的双引号之后,那么图片地址还剩下一个双引号,就是结尾的那个。
    那么,直接匹配所有连续不为"的字符不就可以了,思路可能有点复杂,但是写起来简单:

/[^"]*/

  • 因此,总的正则表达式为:

/(?<=(img[^>]*src="))[^"]*/g 结尾加个g是表示匹配所有符合条件的字符串,现在就可以匹配出图片地址了:

怎么用正则表达式从HTML中匹配img标签的图片地址

关于“怎么用正则表达式从HTML中匹配img标签的图片地址”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注***行业资讯频道,小编每天都会为大家更新不同的知识点。

 
标签: html img
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • JavaScript DOM方法、innerHTML实现增删改
    !DOCTYPE htmlhtmlheadmeta charset="UTF-8"title/titlestyle*{list-style: none;}#main{border: 1px solid black;width: 270px;height: 300px;float: left;text-align: center;}button{display: block;text-align: center;margin-left:20px ;margin-top: 10p
    03-08
  • 【javascript基础】insertAdjacentHTML和insert
    IE的DHTML对象提供了四个可读写的属性来动态操作页面元素的内容:innerText, outerText, innerHTML, outerHTML.  需注意两点:  1. 其中innerText,outerText属性的值是作为普通文本呈现的,即使它含有HTML标签也如实反应出来;而innerHTML, outerHTML呈现的
    03-08
  • JavaScript利用canvas绘制流星雨效果 html流星雨特效
    JavaScript利用canvas绘制流星雨效果 html流星
    目录前言需求分析实现过程1.绘制满天繁星2.满天繁星闪起来3.绘制流星4.流星划过夜空5.流星雨6.merge视觉盛宴前言最近总是梦见一些小时候的故事,印象最深刻的就是夏天坐在屋顶上,看着满天的繁星,一颗,两颗,三颗...不由自主地开始了数星星的过程。不经意间
    03-08
  • 纯CSS隔行换色 html隔行换色
    head meta http-equiv="Content-Type" content="text/html; charset=utf-8" / titlecss3隔行变换色---www.jbxue.com/title style type="text/css" #list1 li:nth-of-type(odd){ background:#00ccff;}奇数行 #list1 li:nth-of-type(even){ background:#
    03-08
  • css文字溢出隐藏,及强制断句 html文字溢出隐藏
    只显示一行文字,便溢出隐藏  text-overflow: ellipsis;  white-place: nowrap;  overflow: hidden;显示 n 行文字后便溢出隐藏   display: -webkit-box;  -webkit-line-clamp: n;  -webkit-box-orient: vertical;  overflow: hidden;强制断句
    03-08
  • 前端Html+Css——宝宝篇(自学一个月) html前端怎么学
  • 人民币符号¥在css和html正确显示
    商城项目需要涉及到人民币的页面现实问题。但是¥(指的是通常输入法中文全角模式下按shift+4的那个)在宋体(v3.03, v5.0)的情况下是显示一杠。常见的其他字体微软雅黑(Microsoft YaHei),华文细黑(STXihei),細明體(MingLiu)能显示两杠。CSS方式:fo
    03-08
  • CSS及HTML、js中的资源路径问题 html引入js文件
    路径 分为相对路径和绝对路径一、相对路径。相对于文件本身的路径。用 ./ 表示同一文件夹下的兄弟文件。用../ 表示所处文件夹的父文件夹中的文件。二、绝对路径。本机绝对路径是 例如  E:\phpStudy\WWW\NEWPC\images.网络的绝对路径是指:例如一张图片的绝
    03-08
  • 合并css/js请求 怎么将css代码合并到html中
    在项目开发的过程中,为了追求速度,减少页面建立的 http 连接数,会对多个css/js请求进行合并如:script src="http://local.com/js/a.js"script src="http://local.com/js/b.js"script src="http://local.com/js/c.js"这样的请求可以合并为:script src="htt
    03-08
  • css文件和js文件后面带一个问号 html中css文件
    经常看一些网站页面源代码中的css文件和js文件后面带一个问号,后面跟着一连串数字或字符,这是干什么用的? 这个方法我也用过,而且很好用?,它的作用有两个:1、作为版本号,让自己方便记忆、查找;2、作为修改标签,让浏览器重新下载新文件。 其实css文件
    03-08
点击排行