正则匹配html开始标签和结束标签
站长网2023-07-02 10:22:145阅
HTML标签是支持嵌套的,怎么能够找到指定标签相对应的闭合标签是最重要的问题。
思路:先匹配最前面的起始标签,假设是div(<div),接着一旦遇到嵌套div,就“压入堆栈”,后面如果遇到div闭合标签了,就“弹出堆栈”。如果遇到闭合标签的时候,堆栈里面已经没有东西了,那么匹配结束,此结束标签为正确的闭合标签。
1、匹配任意闭合HTML标签的正则表达式
- <(?<HtmlTag>[\w]+)[^>]*?>((?<Nested><\k<HtmlTag>[^>]*>)|</\k<HtmlTag>>(?<-Nested>)|.*?)*</\k<HtmlTag>>
2、如果只想匹配div标签,可以使用下面的正则表达式:
- <(?<HtmlTag>div)[^>]*?>((?<Nested><\k<HtmlTag>[^>]*>)|</\k<HtmlTag>>(?<-Nested>)|.*?)*</\k<HtmlTag>>
3、如果想同时匹配多个HTML标签,可以使用下面的正则表达式
- <(?<HtmlTag>(div|span|h1))[^>]*?>((?<Nested><\k<HtmlTag>[^>]*>)|</\k<HtmlTag>>(?<-Nested>)|.*?)*</\k<HtmlTag>>
4、如果想匹配包含ID的标签,可以使用下面的正则表达式:
- <(?<HtmlTag>[\w]+)[^>]*\s[iI][dD]=(?<Quote>["']?)footer(?(Quote)\k<Quote>)[^>]*?(/>|>((?<Nested><\k<HtmlTag>[^>]*>)|</\k<HtmlTag>>(?<-Nested>)|.*?)*</\k<HtmlTag>>)
0005
评论列表
共(0)条相关推荐
手机卸载软件,很多人第一步就错了!教你正确做法,释放手机内存
手机如何正确卸载软件,相信很多朋友还不知道,朋友们大家好,我是小俊,当然我们的手机使用一段时间之后啊,出现内存不足的时候,很多人呢都会选择删除和卸载手机上面一些不经常使用的应用软件,来扩展手机内存空间,解决手机卡顿的情况,但是很多朋友在卸载这些软件的时候,基本上都是在手机桌面上找到这个软件,然后长按这个软件图标,接着点击卸载按钮,然后就将这个软件卸载掉了!站长网2023-07-27 16:31:300000Excel中CUBE函数与数据模型的激情碰撞之一:初识
CUBE类函数非常强大,可以帮助我们充分利用数据模型超强的汇总分析能力。之前介绍过CUBE类函数。这次重新整理,并且将CUBE类函数与动态数组和LAMBDA等新函数结合,从而发挥出更加强大的数据处理能力。算是一个升级系列吧。站长网2023-07-28 13:56:240003《暗黑破坏神4》野蛮人全装备对应词缀一览
在暗黑破坏神4中野蛮人作为一个比较强力的角色,可以通过不同装备的不同词缀带来更加丰富的增强,不过还有很多小伙伴还不了解游戏中的野蛮人的装备词缀都有哪些。暗黑破坏神4野蛮人全装备对应词缀一览头部:[3.1-7.3]%总护甲。[4.4-10]%基础技能攻击速度。[7-14]%屏障生成速度。[5-12]%群控持续时间。X%冷却时间缩减。[28-42]点力量。0000你的身份证办了几张手机卡?用微信就能查询!不是自己的赶快注销
站长网2023-07-29 12:05:070003今天才知道,微信红包和微信转账区别这么大?叮嘱家人别再乱用了
朋友们大家好,我是小俊,微信可以说我们每天都会使用,我们常常会用来给好友转账和发红包,但是转账和发红包,其实是有区别的,大家知道吗?那今天小俊就给大家详细来聊聊,微信转账和红包之间的区别,大家了解之后,就不会再用错了,不知道的朋友,建议点赞收藏加关注,方便以后需要的时候,可以快速找到,接下来就跟着小俊一起来学习他的知识!第一个区别,上限不同!站长网2023-07-29 10:00:470000