我已经用Python编写了一个脚本,它引入了多行电子邮件的主体。我想获取包含主题标签的行上的所有文本,除了主题标签本身并将其转储到列表中。代码如下,我已经隔离了一小部分相关内容:
电子邮件正文:
#Delete 454454
John Smith
+1.555.555.5555
期望的输出:
[454454]
答案 0 :(得分:2)
你可以这样试试,
>>> s = '''#Delete 544574
... #Delete 457545'''
>>> [int(item.split()[1]) for item in s.splitlines() if item.startswith('#')]
[544574, 457545]
答案 1 :(得分:1)
你可以使用正则表达式:
>>> my_string
'#Delete 544574\n#Delete 457545\n \n\nThis email body contains two examples here.'
>>> import re
>>> map(int,re.findall("#.* (\d+)\n",my_string))
[544574, 457545]
正在进行编辑:
>>> my_new
'#Delete 454454\n\n \n\nJohn Smith\n\n+1.555.555.5555'
>>> map(int,re.findall("#.* (\d+)\n",my_new))
[454454]
答案 2 :(得分:0)
您可以使用理解来构建列表(假设您的行位于对象lines
中,可迭代):
[int(line[8:-1]) for line in lines if line.startswith('#Delete ') and line[8:-1].isdigit()]