将 HTML 解析为数据模型

问题描述 投票:0回答:1
regex html-parsing
1个回答
0
投票

我认为正则表达式可以通过对输入进行标记来帮助您完成任务。要组装输出,您将需要一些额外的编程。

我想出的正则表达式是:

<[^>]+>(?:(\w+): )?([^<]*)<\/[^>]+>

这将产生一个匹配列表,例如:

[
  ["id", "1"],
  ["type", "MCQ"],
  ["question", "Which app does Alice install with Simm's help?"],
  ["options", ""],
  ["", "Angry birds game"],
  ["", "Email app"],
  ["", "Chrome browser"],
  ["", "News reader"],
  ["answer", "Angry birds game "]
]

确切的输出将取决于您使用的正则表达式实现,但这就是您将拥有的匹配的要点。

要组装输出,您需要逐一考虑每个匹配项。如果您看到诸如

["options", ""]
之类的匹配项,那么您就知道这会启动一个列表,因为第二组是空字符串。当看到
["", "Angry birds game"]
时你就知道这一定是一个列表项,因为第一组是空字符串。最后,当您看到
["answer", "Angry birds game "]
时,您知道列表一定已经结束,因为两个组都非空。这是您需要做的一些额外的编程工作。

© www.soinside.com 2019 - 2024. All rights reserved.