Я извлекаю коды из списка строк, используя заголовок из электронного письма. Который выглядит примерно так:
text_list = ['Industry / Gemany / PN M564839', 'Industry / France / PN: 575-439', 'Telecom / Gemany / P/N 26-59-29', 'Mobile / France / P/N: 88864839']
Пока что я попробовал:
def get_p_number(text):
rx = re.compile(r'[p/n:]\s+((?:\w+(?:\s+|$)){1})',
re.I)
res = []
m = rx.findall(text)
if len(m) > 0:
m = [p_number.replace(' ', '').upper() for p_number in m]
m = remove_duplicates(m)
res.append(m)
else:
res.append('no P Number found')
return res
Моя проблема в том, что я не могу извлечь код рядом со словами, которые идут до ['PN', 'P/N', 'PN:', 'P/N:']
, особенно если код после начинается с буквы (то есть 'M') или если он имеет косую черту между это (т.е. 26-59-29).
Мой желаемый результат будет:
res = ['M564839','575-439','26-59-29','888489']