使用正则表达式从html中提取电子邮件

时间:2015-03-05 21:34:32

标签: python regex

我正在尝试使用this page中的正则表达式提取任何jabber帐户(电子邮件)。

我尝试过使用正则表达式:

\w+@[\w.-]+|\{(?:\w+, *)+\w+\}@[\w.-]+

......但它没有产生预期的结果。

3 个答案:

答案 0 :(得分:4)

这可能有效:

[^\s@<>]+@[^\s@<>]+\.[^\s@<>]+

p = re.compile(ur'[^\s@<>]+@[^\s@<>]+\.[^\s@<>]+', re.MULTILINE | re.IGNORECASE)
test_str = r'...'
re.findall(p, test_str)

请参阅example

答案 1 :(得分:3)

# -*- coding: utf-8 -*-
s = '''
...YOUR HTML page source code HERE..........

'''

import re
reobj = re.compile(r"\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}\b", re.IGNORECASE)
print re.findall(reobj, s.decode('utf-8'))

结果

[u'skypeman@jabbim.cz', u'sonics@creep.im', u'voxis_team@lsd-25.ru', u'voxis_team@lsd-25.ru', u'adhrann@jabbim.cz', u'jabberwocky@jabber.systemli.org']

答案 2 :(得分:0)

试试这个:

reg_emails=r'^((([0-9a-zA-Z]+)[\_\.\-])*([0-9a-zA-Z]+))@((([0-9a-zA-Z]+)[\_\.\-])*([0-9a-zA-Z]+))\.((([0-9a-zA-Z]+)[\_\.\-])*([0-9a-zA-Z]+))$'