【发布时间】:2011-01-15 12:41:33
【问题描述】:
构建一个匹配分层数据的单个正则表达式是否可能/实用?
例如:
<h1>Action</h1>
<h2>Title1</h2><div>data1</div>
<h2>Title2</h2><div>data2</div>
<h1>Adventure</h1>
<h2>Title3</h2><div>data3</div>
我想以匹配结束。
"Action", "Title1", "data1"
"Action", "Title2", "data2"
"Adventure", "Title3", "data3"
正如我所见,这需要知道这里有一个层次结构,如果我对模式进行编码以捕获 H1,它只匹配该层次结构的第一个条目。如果我不为 H1 编码,那么我无法捕获它。想知道我是否有什么特殊的技巧可以解决这个问题。
这是一个 .NET 项目。
【问题讨论】:
-
用什么语言?正则表达式不是一种语言。它有许多不同的方言,其中一些支持您想要的,而另一些则不支持。大多数人没有。
-
那不是使用正则表达式的好地方,而是HTML解析器;根据您的平台,我们可以推荐一个好的平台。请编辑您的问题并重新标记。
-
从经验来看,正则表达式可以非常有效地处理野外的 HTML:D 认为它并不优雅——但它在所花的时间里是有效的。
-
@Mark Byers:正则表达式是一种语言。
-
我使用了一个 HTML 示例进行说明,但我的数据不一定是 HTML。它可以是一段纯文本,第一行始终是标题。我也在 .NET 平台上工作。
标签: regex hierarchy hierarchical