这是我的测试示例
JT - American journal of public health
JID - 1254074
SB - AIM
SB - IM
MH - Adult
MH - Biomedical Research/*organization & administration
MH - Female
MH - Health Care Reform/*history/*methods
AB - OBJECTIVES: We assessed whether a 2-phase labeling and choice
AB- architecture intervention
OWN - NLM
STAT- MEDLINE
DCOM- 20120417
LR - 20170220
IS - 1541-0048 (Electronic)
我如何编写一个正则表达式来仅识别所有以“MH”开头的行之后的词汇,然后将它们导入到 Excel 工作表中。输出应该是这样的:
[Adult, Biomedical Research, organization & administration, Female, Health Care Reform, history, methods].
这是我的尝试:
import re
Path = "MH\s*.*"
re.findall(Path,file)
我知道这是错误的,但我不知道如何解决。
谢谢
请您参考如下方法:
看起来您需要执行一些正则表达式,因为您还想在/* 上拆分某些行。这应该可以解决问题!
import re
my_file = """JT - American journal of public health
JID - 1254074
SB - AIM
SB - IM
MH - Adult
MH - Biomedical Research/*organization & administration
MH - Female
MH - Health Care Reform/*history/*methods
AB - OBJECTIVES: We assessed whether a 2-phase labeling and choice
AB- architecture intervention
OWN - NLM
STAT- MEDLINE
DCOM- 20120417
LR - 20170220
IS - 1541-0048 (Electronic)"""
my_list = my_file.splitlines()
new_list = []
for item in my_list:
if re.search("^MH\s*-", item):
item = re.sub("[^-]+-\s*", "", item)
item = item.split("/*")
new_list = new_list + item
print(new_list)
输出:
['Adult', 'Biomedical Research', 'organization & administration', 'Female', 'Health Care Reform', 'history', 'methods']
我正在获取该字符串并将其放入列表中。我认为您很有可能在导入该字符串时将该字符串作为列表。我也喜欢一次处理 1 行正则表达式,这样以后更容易进行故障排除。
我正在匹配以 MH 开头的项目,然后捕获它们。然后,我在 /* 上拆分每个项目,并将所有这些项目放在一个漂亮的列表中,您可以将其用于 excel 导出。
