gpt4 book ai didi

python - 使用正则表达式解析类似 xml 的文档

转载 作者:太空宇宙 更新时间:2023-11-04 07:11:34 25 4
gpt4 key购买 nike

我有一个包含许多类似 xml 的元素的文件,例如这个:

<document docid=1>
Preliminary Report-International Algebraic Language
Perlis, A. J. & Samelson,K.
CACM December, 1958
</document>

我需要解析 docid 和文本。什么是合适的正则表达式?

我已经试过了,但它不起作用:

collectionText = open('documents.txt').read()
docsPattern = r'<document docid=(\d+)>(.)*</document>'
docTuples = re.findall(docsPattern, collectionText)

编辑:我修改了这样的模式:

<document docid=(\d+)>(.*)</document>

不幸的是,这匹配整个文档而不是单个文档元素。

EDIT2:Ahmad 和 Acorn 的正确实现是:

collectionText = open('documents.txt').read()
docsPattern = r'<document docid=(\d+)>(.*?)</document>'
docTuples = re.findall(docsPattern, collectionText, re.DOTALL)

最佳答案

你的模式是贪心的,所以如果你有多个 <document>它最终会匹配所有元素。

您可以使用 .*? 使其成为非贪婪的,意思是“匹配零个或多个字符,尽可能少。”更新后的模式是:

<document docid=(\d+)>(.*?)</document>

关于python - 使用正则表达式解析类似 xml 的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8130828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com