我已经环顾四周试图回答这个问题,但无济于事。我正在解析维基媒体页面转储以处理某些页面(是的,我知道有几个解析维基媒体页面转储的工具,但它们对我和我的解析器都不起作用。)
问题很简单。我知道如何检测一个部分的开头(例如“==外部参考==”)。这很简单。没有明确定义的是如何检测某个部分何时结束?例如,对于大多数部分,我可以扫描直到下一部分标题的开头,但这不可靠。我查看了维基媒体关于部分的帮助页面,但没有说明如何检测部分的结尾。
答案 0 :(得分:1)
MediaWiki syntax中没有“部分结束”标记。一个部分一直延伸到相同或更低级别的下一个部分标题。 (还有一个“section 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 =
创建了任何额外的第一级标题,但每页顶部自动生成的第一级标题也不算作标题标题。