js正则匹配闭合标签_正则匹配闭合HTML标签(支持嵌套)

OK,先确定我们要解决的问题——从一段Html文本中找出特定id的标签的innerHTML。

这里面最大的难点就是,Html标签是支持嵌套的,怎么能够找到指定标签相对应的闭合标签呢?

我们可以这样想,先匹配最前面的起始标签,假设是div吧(

我之所以能够这样去思考,是因为我了解过正则的特性,我知道正则中的平衡组能够实现我刚才说的“堆栈”操作。所以,如果我们要编写复杂正则表达式,需要对正则的一些高级特性至少有所了解,这样我们思考问题才有个方向。

================================

匹配任意闭合HTML标签的正则表达式:

[\w]+)[^>]*?>((?[^>]*>)|\k>(?)|.*?)*\k>

如果只想匹配div标签,可以使用下面的正则表达式:

div)[^>]*?>((?[^>]*>)|\k>(?)|.*?)*\k>

是的,你可以把div修改成任意你想要匹配的HTML标签

如果想同时匹配多个HTML标签,可以使用下面的正则表达式:

(div|span|h1))[^>]*?>((?[^>]*>)|\k>(?)|.*?)*\k>

你还可以继续添加更多要匹配的标签

如果想匹配包含ID的标签,可以使用下面的正则表达式:

[\w]+)[^>]*\s[iI][dD]=(?["']?)footer(?(Quote)\k)[^>]*?(/>|>((?[^>]*>)|\k>(?)|.*?)*\k>)

这个正则匹配任意id为footer的HTML标签

div测试

111
(1)
(2)

222

(3)

33di333

444
(4)

//div)[^>]*?>((?[^>]*>)|\k>(?)|.*?)*\k>

匹配结果:(1) 、(4)

//div)[^>]*?>((?[^>]*>)|\k>(?)|.*?|\s)*\k>

匹配结果:(1) 、(2)、(4)

//

[^

匹配结果:(1) 、(4)

//

[^]*

匹配结果:(1) 、(3)、(4)

//

[^]*(包含)[^]*

根据包还内容确定结果。

注意:正则前面变为

]*>可以匹配div里面的属性

工具下载:https://pan.baidu.com/s/1kVsaqwv

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/411252.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新手入门:AIX操作系统安装图解

AIX(Advanced Interactive Executive)是IBM 公司的UNIX操作系统,它特别适合于做关键数据处理。2002年IBM发布了AIX 5.2版。 下面就以该版本为例来介绍IBM的AIX操作系统的安装,主要介绍在IBM P630机器上如何使用AIX软件的光盘&…

Java基础之线程池

Java基础之线程池 转载于:https://www.cnblogs.com/daierge/p/10954228.html

工作387-vant控制日期范围

<van-cell-group><van-switch-cell size"26px" :active-value"active" active-color"#FFA9B5" inactive-color"#FFA9B5" v-model"checked" change"ChangeStatus" title"大姨妈来了" /><…

华为荣耀9x怎么解账户锁_麒麟820,4000万像素,荣耀X10是下一部千元街机?

哈喽黑粉们&#xff0c;欢迎来到黑马公社。最近发布的新机很多&#xff0c;其中之一就是黑马此前和大家聊过多次的荣耀X10。这款新机于昨天5月20日发布&#xff0c;表现怎么样呢&#xff1f;今天黑马就来聊聊这款新机。和此前爆料的一样&#xff0c;荣耀X10采用了升降式设计&am…

计算机硬件技术基础5章在线,《计算机硬件技术基础》试题(D)

有关《计算机硬件技术基础》,能够方便考生复习,保证不挂科。(D)一、单项选择题(每题1分&#xff0c;共20分)1、计算机的性能在很大程度上是由CPU决定的。CPU的性能主要体现为它的运算速度。下列有关计算机性能的叙述正确的是()。A、计算机中cache 存储器的有无和容量的大小对计…

关键词提取算法

1、先给本聚类内的所有文档进行分词&#xff0c;然后用一个字典保存每个词出现的次数;2、遍历每个词&#xff0c;得到每个词在所有文档里的IDF值&#xff0c;和在本聚类内出现的次数&#xff08;TF&#xff09;相乘的值;3、用一个字典(key是词&#xff0c;value是TF*IDF权重)来…

工作388-jq返回实例

$ : function(tagId){return document.getElementById(tagId);},/*创建一个dom的类名*/$c : function(tagName){return document.createElement(tagName);},

JavaWeb的分页

1.什么是分页 第N页/共M页 首页 上一页 1 2 3 4 5 6 7 8 9 下一页 尾页 [ ] go 分页的优点&#xff1a;只查询一页&#xff0c;不用查询所有页&#xff01; 2.分页数据 页面的数据都是由Servlet传递过来的&#xff01; Servlet&#xff1a; 1.*当前页&#xff1a;pageCod…

中反应器体积_缠绕管式反应器大幅提高能效,移热能力较列管式反应器提升逾50%...

武汉东海石化重型装备有限公司与中科院过程工程研究所联合开展的高效缠绕管式反应器研发课题二期研究日前结题。该研究建立了一套与不同工作原理相适应的缠绕管式反应器设计方法&#xff0c;使缠绕管式反应器的移热能力较列管式固定床反应器提升逾50%&#xff0c;可极大提高企业…

【异常(待解决)】org.apache.http.NoHttpResponseException: api.weixin.qq.com:443 failed to respond...

一、记录下异常堆栈信息 2019-06-01 10:26:58.246 [http-nio-9850-exec-3] ERROR weixin.popular.client.LocalHttpClient - execute error org.apache.http.NoHttpResponseException: api.weixin.qq.com:443 failed to respondat org.apache.http.impl.conn.DefaultHttpRespon…

工作389-移动端控制

<meta name"viewport" content"widthdevice-width, initial-scale1.0,maximum-scale1.0, user-scalable0">

企业内容管理-互联网应用

企业内容管理-互联网应用 当你第一次听到企业内容管理这个名字&#xff0c;很容易联想到ERP这种复杂无比的系统。实际上也确实如此&#xff0c;目前几大主要的ECM系统都是复杂无比&#xff0c;所以我想从互联网应用&#xff0c;一般网民可以使用的角度来谈谈企业内容管理。 从…

计算机做游戏到大学要学什么,大学学什么专业,毕业才能从事电竞行业?

原标题&#xff1a;大学学什么专业&#xff0c;毕业才能从事电竞行业&#xff1f;电竞可不只是打游戏这么简单。想必最近很多同学已经陆陆续续收到录取通知书了&#xff0c;大学的美好生活已经在等着你们啦&#xff01;今天化学姐想和大家聊聊就业已经游戏行业相关的事儿。电子…

layui中table监听单元格_最全总结 | 聊聊 Python 办公自动化之 PPT(中)

点击上方 “AirPython”&#xff0c;选择 “加为星标”第一时间关注 Python 技术干货&#xff01;1. 前言上一篇文章简单地介绍了 PPT 的文档结构&#xff0c;并使用 python-pptx 这个依赖库完成对 PPT 文档最基本的操作最全总结 | 聊聊 Python 办公自动化之 PPT(上)作为 PPT 系…

工作383:css使absolute相对于父容器进行定位而不是以body(为什么绝对定位(absolute)的父级元素必须是相对定位(relative))...

借知乎的回答如下解释&#xff1a; 首先&#xff0c;我想告诉你的是&#xff0c;如果父级元素是绝对定位&#xff08;absolute&#xff09;或者没有设置&#xff0c;里面的绝对定位&#xff08;absolute&#xff09;自动以body定位。这句话是错的。 正确的是&#xff1a;只要父…

如何高效的清理系统盘空间?

我们一般会把系统安装在C盘&#xff0c;但是使用一段时间后会发现C盘的空间越来越少。尤其我们做开发的&#xff0c;会在电脑中装上很多软件的。比如我的机器上C盘空间 15G&#xff0c;平时安装软件时只要可以选择我都会把它装到其他盘的&#xff0c;但是半年下来&#xff0c;C…

东北考生到南方学计算机,为啥东北考生都想去南方,而南方学生很少考东北,看看他们怎么说...

原标题&#xff1a;为啥东北考生都想去南方&#xff0c;而南方学生很少考东北&#xff0c;看看他们怎么说文/晓宁说教育高考对于众多考生来说&#xff0c;是人生中最重要的一场考试&#xff0c;如果能在高考中发挥出好成绩&#xff0c;就可以顺利的考上一所自己理想的大学。按照…

[html] 如何给table中的某一列设置固定宽度

[html] 如何给table中的某一列设置固定宽度 table{ table-layout:fixed} table tr td:nth-child(n){width:100px}个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

用excel制作双层饼图_双层饼图,让你的工作更出彩

在Excel中饼图是很常见的图表类型&#xff0c;做起来也很简单&#xff0c;相信大家都会做。但双层饼图你会做吗&#xff1f;如下图所示&#xff0c;根据左侧的数据源&#xff0c;做出右侧的双层饼图。这么漂亮的双层饼图是怎么制做出来的呢&#xff1f;今天我就来给大家分享一下…

Comet OJ - 2019 六一欢乐赛

传送门 #A&#xff1a; 思路&#xff1a;等差数列求和,看成俩次12… n,多加的n减去&#xff0c;所以 ans n*(n1) - n。 AC代码&#xff1a; 1 #include<iostream>2 #include<algorithm>3 #include<string>4 using namespace std;5 int main()6 {7 int n…