Я пытаюсь найти в теле письма определенные строки.Я был в состоянии получить извлечение всего тела письма.Теперь я хочу извлечь из него конкретные строки.Пока мой код:
resp, items = conn.uid("search",None, 'All')
items = items[0].split()
for emailid in items:
resp, data = conn.uid("fetch",emailid, "(RFC822)")
if resp == 'OK':
email_body = data[0][1].decode('utf-8')
mail = email.message_from_string(email_body)
if mail["Subject"].find("PA1") > 0 or mail["Subject"].find("PA2") > 0:
regex = r"(\bEvent demon log entry:)(?:\r?\n|\r)+(\[[^]]+\].*)"
a=re.findall(regex, email_body , re.IGNORECASE)
Сейчас я получаю следующие строки:
[(u'Event demon log entry:', u'[27/12/2018 05:29:30] CAUAJM_I_40245 EVENT: ALARM ALARM: JO=\r')]
[(u'Event demon log entry:', u'[27/12/2018 04:58:05] CAUAJM_I_40245 EVENT: ALARM ALARM: JOBFAILURE JOB: p2=\r')]
[(u'Event demon log entry:', u'[27/12/2018 06:00:03] CAUAJM_I_40245 EVENT: ALARM ALARM: JO=\r')]
[(u'Event demon log entry:', u'[27/12/2018 07:00:05] CAUAJM_I_40245 EVENT: ALARM ALARM: JO=\r')]
, но хочу получить все от [(u'Event demon log entry:', u'[27/12/2018 05:29:30]
до EVENT: ALARM ALARM: JO=\r')]
Желаемый результат:
CAUAJM_I_40245 EVENT
Оригинальный код из тела письма:
Event demon log entry:
[27/12/2018 04:48:17] CAUAJM_I_40245 EVENT: ALARM ALARM: JOBFAILURE JOB: bx_p2_reporting EXITCODE: 1
ОБНОВЛЕНИЕ:
Оказалось, мне нужно получить следующее:
JOB: bx_p2_reporting EXITCODE: 1
с
Event demon log entry:
[26/12/2018 20:17:14] CAUAJM_I_40245 EVENT: ALARM ALARM: JOBFAILURE JOB: p2=
_batch_excel_RevalFutBasisSpdCalc_NY3pm MACHINE: ldnmdsbatchxl01 EXITCODE: =
268438455