0

在 Python 中,我试图在两个字符串之间使用正则表达式提取信息。我认为最好举个例子。

<stuff>
1
2
3
4
</stuff>

<stuff>
5
7
8
9
</stuff>

我试图一次拉出其中一个容器*并将它们放在一个单独的文件中。我已经找到了如何在例如 5 6 7 8 之间提取内容,并同时提取所有记录(在 bash 中),但还没有得到完整的容器,包括放置在变量或文件中的正则表达式,我可以使用的东西。

所以我想收集 <stuff> 和 </stuff>

任何建议将不胜感激。我正在为此尝试在 python2 中工作。

4

2 回答 2

1

如果您需要解析 XML 格式的数据,可以尝试使用xml.etree.ElementTree模块中的工具。

from xml.etree.ElementTree import XML
single_item_data = XML("<stuff>1 2 3</stuff>").text

如果您有一些嵌套元素,则可以执行以下操作:

from xml.etree.ElementTree import XML

test_input_xml = '''
<lotsOfStuff>
   <stuff>
   1
   2
   3
   4
   </stuff>

   <stuff>
   5
   7
   8
   9
   </stuff>
</lotsOfStuff>
'''

test_input = XML(test_input_xml)
stuffs = test_input.findall("stuff")

for stuff in stuffs:
   element_text = stuff.text
   print element_text
于 2012-08-16T12:13:06.597 回答
1

如果您试图展示从 HTML 页面中获取数据的简化图片,那么我强烈建议您不要使用正则表达式 [在 SO 中查找,原因是什么]。

使用BeautifulSouplxml。更好,更强大。

于 2012-08-16T12:27:33.063 回答