python: 使用正则表达式和 findall 进行搜索

python: search with regex and 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]

但是不行,我哪里做错了?

您可以使用 search() 函数仅查找第一次出现的地方

>>> rex=re.compile(r"\S+@gmail\.\w+")
>>> rex.search(s).group()
'pasquale@gmail.com'