python: поиск с помощью регулярных выражений и findall
У меня очень длинная строка, которая содержит помимо других символов даже адреса электронной почты.
Как:
>>> s= “fedcantona datto, ernest william, pasquale <b>lops</b>, till plbaum, ...pasqale. <b>email</b>: pasquale@gmail.com pagina web personale: http://.www. do. aggigi .il ...fanei ana tel: +34-54285, e-<b>mail</b>: fanli@gmail.com. .impedovo ... <b>lops</b> pale, tel: +9-54285, e-<b>mail</b>: <b>lops</b>, g semo, p .bile ... b mehta, c niederee, a stewart, m demm”
Я хочу получить в качестве первого адреса электронной почты строку, единственное, что я знаю, это то, что все адреса электронной почты заканчиваются на "@gmail.com". Я написал это:
>>> print re.findall("(%s)(@gmail.it)", s)[0]
Но это не работает, что я сделал не так?
1 ответ
Решение
Вы можете использовать функцию search(), чтобы найти только первое вхождение
>>> rex=re.compile(r"\S+@gmail\.\w+")
>>> rex.search(s).group()
'pasquale@gmail.com'