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'
Другие вопросы по тегам