我有一个很长的文件,我用Python正则表达式一次解析一个值,例如,下面是我用来打印<h2>
标记之间所有值的代码:
import os
import re
def query():
f = open('company.txt', 'r')
names = re.findall(r'<h2>(.*?)</h2>', f.read(), re.DOTALL)
for name in names:
print name
if __name__=="__main__":
query()
我重复同样的步骤来打印area_code
。但这次,我只是替换findall函数中的模式来打印区号。这意味着我必须运行两次代码。你知道吗
我的问题是,有没有一种方法可以简单地同时运行两个查询,并将结果打印在一行中,行之间用管道(|)隔开?
像这样:Planner | B21
下面是我试图解析的简短示例文件。你知道吗
<h2>Planner</h2>
area_place = 'City of Angels';
area_code = 'B21';
period = 'Summer';
... more content
<h2>Executive</h2>
area_place = 'London';
area_code = 'D33';
period = 'Winter';
...more content
这在Python 2.7中为我提供了测试数据,请尝试一下:
基本上,我只是将两个查询合并到一个查询中,然后以数字形式指定捕获组。你可能想重新命名“名字”,因为我这样做没什么意义。你知道吗
或者,如果您希望保留现有查询,并且可以假设它们的长度都相同,则可以执行以下操作:
但是,除非您对数据的规律性非常有信心,否则我不推荐这种方法。你知道吗
相关问题 更多 >
编程相关推荐