我在文本文件中有以下文本数据。文本有一些类似 HTML 的标签,但不统一,正如您在示例中看到的,有多个标签,只有一对有效标签,我想提取有效标签之间的文本。
text = '''
some text here <document> additional text here <document> The universe really seems to be expanding fast. Too fast, even. A new measurement confirms what previous—and highly debated—results had shown: The universe is expanding faster than predicted by theoretical models, and faster than can be explained by our current understanding of physics.</document>
'''
我尝试使用正则表达式来查看是否可以从有效的文档标签集中提取文本,但是当我打印出来时,我得到了文件的全部内容。
有什么想法吗?
import re
with open('data.txt', 'r') as f:
text = f.read()
input = re.findall(r"<document>.*?</document>", text, re.DOTALL)
for i in input :
print(i)
您需要在正则表达式中使用捕获组才能获取标签之间的内容。
在下面的代码中,捕获组
(.*?)
将执行您想要的操作。
import re
with open('data.txt', 'r') as f:
text = f.read()
input = re.findall(r"<document>(.*?)</document>", text, re.DOTALL)
for i in input :
print(i)