Я пытаюсь сопоставить электронные письма в тексте html, используя следующий код в python
my_second_pat = '((\w+)( *?))(@|[aA][tT]|\([aA][tT]\))(((( *?)(\w+)( *?))(\.|[dD][oO][tT]|\([dD][oO][tT]\)))+)([eE][dD][uU]|[cC][oO][mM])'
matches = re.findall(my_second_pat,line)
for m in matches:
s = "".join(m)
email = "".join(s.split())
res.append((name,'e',email))
когда я запускаю его на line = [email protected]
Я получил:
[('shoham', 'shoham', '', '@', 'stanford.', 'stanford.', 'stanford', '', 'stanford', '', '.', 'edu')]
что я ожидаю:
[('shoham','@', 'stanford.', 'edu')]
На regexpal.com он соответствует одной строке, так что, думаю, у меня проблемы с re.findall
.
Я новичок как в регулярном выражении, так и в python. Любая оптимизация/модификация приветствуется.