用 RegEx 实现 beautiful soup 中的 XML 解析

By simon at 2019-05-20 • 0人收藏 • 28人看过

我需要用 BeautifulSoup 和 XML 解析器解析一个文件,特别是一个 XBRL 文件。 但是,如果使用 LXML 解析器或 XML 解析器,则输出会发生变化,因为不能使用在 LXML 解析器中成功使用的正则表达式。 我包括脚本的输出。

我之所以需要使用 XML 解析器,是因为它包含大写字母,而我使用 RegeX 是因为标记名在文件中各不相同,并且包含":"字符。

句子太长,请短一点

我该如何解决这个问题?

1 个回复 | 最后更新于 2019-05-20
2019-05-20   #1

为此任务编写正则表达式可能不是最好的做法。 然而,如果有必要的话,我们可以使用捕获组并一步一步地收集我们想要的数据:

 (. +?) 

如果需要最后一个逗号,我们可以简单地修改为:

 (. +?) 

Regex

如果不需要这个表达式,可以在Regex101. com.

正则电路

杰克斯,伊姆也有助于将表情形象化。

测试

# coding utf8 # 上面的标记为这个文档定义了编码,并用于 Python 2.x 兼容性导入 re regex r"(。 +?) : ([ a-z ] +) s (contextref)("). +?) " s (小数)(")(。 +?) " s (unitref)(")(. +?) \">(. +?) 

演示

这个片段只是为了展示捕获组是如何工作的:

Const regex / (. +?) : ([ a-z ] +) s (contextref)("). +?) " s (小数)(")(。 +?) " s (unitref)(")(. +?) \">(. +?) 

登录后方可回帖

Loading...