首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析HTML标题标签顺序的最有效方法

解析HTML标题标签顺序的最有效方法
EN

Stack Overflow用户
提问于 2013-02-13 16:25:04
回答 1查看 97关注 0票数 1

我试图确定给定的页面是否不尊重标头标记(h1、h2等)。秩序。事实上,我希望能够解析一堆页面,并且它会返回不遵循页眉顺序的每一页。

我的第一个目标是能够找出h2以外的其他东西是否会紧跟在后面。我用下面的模式实现了这一点

代码语言:javascript
复制
(?<=<h1[^<>]*>.+?)(?<!<h1[^<>]*>.+?<h2[^<>]*>.+?)<h[3-6][^<>]*>

以前的regex是为我工作,虽然它并不是真正有效的,远远不是完美的。

因此,在中,首先,,我希望得到一些帮助来改进这个模式,如果可能的话,可以解释一下我以前的模式,以及它为什么如此低效。而在第二个中,我想升级/修改模式,以实现最初的目标,即确保文档头标签的顺序得到尊重。

注意:--我正在使用RegexHero进行基准测试

I know Regular Expressions are typically not best practice for parsing HTML,但这更多的是一个练习,让我更有效率地使用查找器、原子分组等等,谢谢您的理解。

我们可以使用下面的模式和下面的文本作为示例

模式:

代码语言:javascript
复制
 (?<=lol1.+?)(?<!lol1.+?lol2.+?)lol[3-6]

文本:

lol1 bla lol3 bla lol2 bla lol4

EN

回答 1

Stack Overflow用户

发布于 2013-02-13 17:00:13

您可以做的是将您的头序列提取到一个数组中,然后您可以对其进行操作。例如:

代码语言:javascript
复制
<h1><h3></h3></h1><h2><h3><h4></h4></h3></h2>

将转化为:

代码语言:javascript
复制
[1,3,-3,-1,2,3,4,-4,-3,-2]

然后,您可以使用简单的操作来验证您的结构(例如,从一个值跳转到下一个值是+/-1)。

裁判官:

代码语言:javascript
复制
/(<h\d|<\/h\d)/g
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14858132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档