
正则表达式匹配特定 html 结构
通过正则表达式,我们可以解析 html 文本并提取所需数据。以下是一个实例,展示了如何通过正则表达式匹配特定 html 结构并提取其中的内容:
给定以下 html 结构:
标题xxxxx
- 文章标题1
- 文章标题2
- 文章标题3
- 文章标题1
- 文章标题2
- 文章标题3
- 文章标题1
- 文章标题2
- 文章标题3
我们希望提取 class 为 "block-2" 的 div 中所有 li 标签内的值。
立即学习“前端免费学习笔记(深入)”;
使用以下正则表达式可以实现上述目的:
/(?zuojiankuohaophpcn=block-1.*zuojiankuohaophpcnliyoujiankuohaophpcn).*?(?=zuojiankuohaophpcn\/liyoujiankuohaophpcn.*block-2)/g
该正则表达式包含以下部分:
- (?):匹配以 class 为 "block-1" 的 div 内 li 标签之前的任何内容。
- .*?:非贪婪匹配 li 标签的内容(包括子元素)。
- (?= .*block-2):匹配以 class 为 "block-2" 的 div 内 li 标签之后的任何内容。
利用该正则表达式,我们可以如下提取所需数据:
let str = strhtml; // html 文本 let removeenter = str.replace(/[\r\n]/g, "").replace(/[ ]/g, "").match(/(?zuojiankuohaophpcn=block-1.*zuojiankuohaophpcnliyoujiankuohaophpcn).*?(?=zuojiankuohaophpcn\/liyoujiankuohaophpcn.*block-2)/g); console.log(removeenter);
输出结果:
["文章标题1", "文章标题2", "文章标题3"]











