首页 > 解决方案 > 在特定字符串之后提取数据直到python中的新行

问题描述

我在电子邮件中有以下几行。

data=
'''
ABC something random: Adele Vance <AdeleV@contoso.OnMicrosoft.com>
To: Megan Bowen <MeganB@contoso.OnMicrosoft.com>
XYZ something random: Press conference
'''

我想提取“To:”之后的所有内容,直到下一行。目前我正在做以下事情。

start=data.find("To:") #Index where To starts
end=data.find("\n") #Index of a new line
expected_string=data[start:end].strip()

但它没有按预期工作。如何在“To”之后提取数据直到新行?IE

To: Megan Bowen <MeganB@contoso.OnMicrosoft.com>

标签: python

解决方案


所以基本上.find()返回子字符串的起始索引,如果它存在于字符串中。

所以在这种情况下 start=data.find("To:")

将返回起始索引。现在这部分出现了问题,end=data.find("\n") #Index of a new line因为这将返回 first 的索引,\n即第一行的结尾。所以我们必须在find. 我们可以这样做。

data= '''
ABC something random: Adele Vance <AdeleV@contoso.OnMicrosoft.com>
To: Megan Bowen <MeganB@contoso.OnMicrosoft.com>
XYZ something random: Press conference
'''

start_index = data.find('To:')
end_index = data.find('\n',start_index)
start_string = data[start_index:end_index]

print(start_string)

在这里,如果你看,我添加了start_indexwhen \nfind which 将在“To:”所在的行中找到反斜杠 n。


推荐阅读