я разработал и применение для сбора любого типа писем из файлов типов: [email protected] ishani (в) dit.dolly.lk ishani в CS точке тележки точка EduEmail урожай с питоном
Но проблема выводится на некоторые дополнительные элементы в списке, отличном от извлеченного полного сообщения электронной почты. Я не понимаю, почему. Я пытался в различных ways.I думаю, что проблема в моем регулярном выражении или логика
вот мой код
data=f.read()
regexp_email = r'(([\w]+)@([\w]+)([.])([\w]+[\w.]+))|(([\w]+)(\(at\))([\w]+)([.])([\w]+[\w.]+))|(([\w]+)(\sat\s)([\w-]+)(\sdot\s)([\w]+(\sdot\s[\w]+)))'
pattern = re.compile(regexp_email)
emailAddresses = re.findall(pattern, data)
print emailAddresses
выход как этот
[('[email protected]', 'ishani', 'sliit', '.', 'lk', '', '', '', '', '', '', '', '', '', '', '', '', ''), ('', '', '', '', '', 'ishani(at)dit.sliit.lk', 'ishani', '(at)', 'dit', '.', 'sliit.lk', '', '', '', '', '', '', ''), ('', '', '', '', '', '', '', '', '', '', '', 'ishani at cs dot dolly dot edu', 'ishani', ' at ', 'cs', ' dot ', 'dolly dot edu', ' dot edu')]
но Im ожидая вывод такой как
['[email protected]','ishani(at)dit.dolly.lk','ishani at cs dot dolly dot edu']
Есть ли какой-либо метод, который кто-либо пытался, который поддерживает мою проблему?
В вашем решении сводится к символу. Но я ожидаю весь адрес электронной почты в одном элементе списка вот так ['[email protected]', 'ishani (at) dit.dolly.lk', 'ishani at cs dot dolly dot edu'] – Ishani702
@ Ishani702: Он делает то, что вы хотите. О чем ты говоришь? – nhahtdh
ваши результаты отображаются следующим образом: ['n', 'u', 'w', 'a', 'n', '@', 's', 'l', 'i', 'i', 't ','. ',' l ',' k ',' n ',' u ',' w ',' a ',' n ',' (',' a ',' t ',') ',' 'd', 'i', 't', '.', 's', 'l', 'i', 'i', 't', '.', 'l', 'k', 'n ',' u ',' w ',' a ',' n ',' ',' a ',' t ',' ',' c ',' s ',' ',' d ',' o ' , 't', '', 's', 'l', 'i', 'i', 't', '', 'd', 'o', 't', '', 'e', ' 'd', 'u'] то, что я ожидаю, это так ['[email protected]', 'ishani (at) dit.dolly.lk', 'ishani at cs dot dolly dot edu'] – Ishani702