正则表达式匹配闭合HTML标签 支持嵌套
|
短视频,自媒体,达人种草一站服务 先确定我们要解决的问题——从一段Html文本中找出特定id的标签的innerHTML,需要的朋友可以参考下 任何复杂的正则表达式都是由简单的子表达式组成的,要想写出复杂的正则来,一方面需要有化繁为简的功底,另外一方面,我们需要从正则引擎的角度去思考问题。关于正则引擎的原理,推荐《Mastering Regular Expression》中文名叫《精通正则表达式》。挺不错的一本书。 OK,先确定我们要解决的问题——从一段Html文本中找出特定id的标签的innerHTML。 这里面最大的难点就是,Html标签是支持嵌套的,怎么能够找到指定标签相对应的闭合标签呢? 我们可以这样想,先匹配最前面的起始标签,假设是div吧(<div),接着一旦遇到嵌套div,就“压入堆栈”,后面如果遇到div闭合标签了,就“弹出堆栈”。如果遇到闭合标签的时候,堆栈里面已经没有东西了,那么匹配结束,此结束标签为正确的闭合标签。< p=""> 我之所以能够这样去思考,是因为我了解过正则的特性,我知道正则中的平衡组能够实现我刚才说的“堆栈”操作。所以,如果我们要编写复杂正则表达式,需要对正则的一些高级特性至少有所了解,这样我们思考问题才有个方向。 匹配任意闭合HTML标签的正则表达式: <(?[w]+)[^>]*?>((?<k[^>]*>)| 申请创业报道,分享创业好点子。点击此处,共同探讨创业新机遇! (编辑:天瑞地安资讯网_瑞安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 三星Galaxy M52 5G利用蓝牙认证
- aigo国民好物移动固态硬盘S7 Pro利用感受,每天一点小惊喜!
- 苹果最畅销产品要来了 新AirPods Pro曝光 确定换上USB-C
- realme Book增强版 增强版Air可以说是笔记本颜值天花板
- 彻底摆脱手机!据传华为Watch 3系列将支持微信支付
- 新U来了更新要冷静!锐龙7 5800X比酷睿i5 12600K更香
- 如何在下班后开启第二职业?兼职自媒体!给自己留条后路!
- 三星Galaxy S22首次与iPhone 13 Pro对比 发布新照片和视频
- 新款MacBook Air已在途中 屏幕有刘海了
- 升芯换屏还有光学防抖 moto G71s测试 千元性价比新卷王


