Краткий ответ:
regexp = re.compile('MACHINE:\s={0,1}\s{0,1}((\S+=\^M\s\S+|\S+))')
value = regexp.search(data)[1]
value.replace('=^M\n', ''))
Длинный ответ:
Предположим, у нас есть данные из ваших примеров:
data = """
BFAILURE JOB: p2_batch_excel_quants_fx_daily_vol_check_0800 MACHINE: =
ldnmdsbatchxl01 EXITCODE: 268438455
(...)
RUNALARM JOB: p2_credit_qv_curve_snap MACHINE: p2prog06
Attachments:
(...)
[11/01/2019 08:15:09] CAUAJM_I_40245 EVENT: ALARM ALARM: JO=^M
BFAILURE JOB: p1_static_console_row_based_permissions MACHINE: p1prog=^M
07 EXITCODE: 1<br>^M
"""
Тогда мы можем использовать код:
import re
regexp = re.compile('MACHINE:\s={0,1}\s{0,1}((\S+=\^M\s\S+|\S+))')
for d in data.split("(...)"):
value = regexp.search(d)[1]
print(value.replace('=^M\n', ''))
Как вы видите, регулярное выражение соответствует = ^ M \ n, поэтому нам нужно удалить его после.
выход:
ldnmdsbatchxl01
p2prog06
p1prog07
EDIT:
если ваши данные содержат много тел электронной почты в одной строке:
import re
regexp = re.compile('MACHINE:\s={0,1}\s{0,1}((\S+=\^M\s\S+|\S+))')
matches = regexp.findall(data)
print(matches)
print('---')
for m in matches:
print(m[0].replace('=^M\n', ''))
продукты:
[('ldnmdsbatchxl01', 'ldnmdsbatchxl01'), ('p2prog06', 'p2prog06'), ('p1prog=^M\n07', 'p1prog=^M\n07')]
---
ldnmdsbatchxl01
p2prog06
p1prog07