1

我环顾四周试图回答这个问题,但无济于事。我正在解析 wikimedia 页面转储以处理某些页面(是的,我知道有几种工具可以解析 wikimedia 页面转储,但它们对我和我的解析器都不起作用)。

问题很简单。我知道如何检测一个部分的开始(例如“==External References==”)。这很容易。没有明确定义的是如何检测一个部分何时结束?例如,对于大多数部分,我可以扫描直到下一个部分标题开始,但这并不可靠。我查看了 wikimedia 关于部分的帮助页面,但它没有说明如何检测部分的结尾。

4

1 回答 1

1

MediaWiki 语法中没有“节结束”标记。一个节一直延伸到下一个相同或更低级别的节标题。(还有一个“第 0 节”包含第一节标题之前的所有文本。)

是的,这意味着不同级别的部分可以重叠,如下例所示:

This text is in section 0.

== Section 1 begins here ==

This text is in section 1.

=== Section 2 begins here ===

This text is in sections 1 and 2.

=== Section 3 begins here ===

This text is in sections 1 and 3.

== Section 4 begins here ==

This text is in section 4.

请注意,使用 HTML <h1><h2>等标签创建的标题不会开始或结束部分,也不会有部分编辑链接,即使它们在其他方面看起来与部分标题相同。

模板内的部分标题确实有部分编辑链接,可让您编辑模板的相应部分,但它们被特殊处理,不被视为包含页面的正常部分结构的一部分。这里还有一些奇怪的特殊情况,涉及模板参数中的部分标题,我不完全记得。

每个页面顶部自动生成的第一级标题也不算作部分标题,尽管使用创建的任何额外的第一级标题= Heading =都可以。

于 2013-01-06T06:45:34.803 回答