在网页上使用正则表达式查找电子邮件地址
我正在尝试使用正则表达式中的findall()函数,从一个网址中找出电子邮件地址。这是我想要的结果(在命令行中输入的内容):
>>>from urllib.request import urlopen
>>>url = 'http://www.cdm.depaul.edu'
>>>content = urlopen(url).read().decode()
>>>emails(content)
>>>{'advising@cdm depaul.edu' , 'wwwfeedback@cdm.depaul.edu' ,
admission@cdm.depaul.edu' , 'webmaster@cdm.depaul.edu' }
这是我的代码:
def emails(doc):
return findall('[\d]*@[\d]+', don't know what to set second argument as)
我知道这很简单,但我搞不清楚我的第二个参数应该是什么,所以我一直得到一个空列表。有人能告诉我为什么吗?
1 个回答
2
你需要提供一个叫做 content
的内容,这个内容是通过参数 doc
传入的:
def emails(doc):
return findall('[\d]*@[\d]+', doc)
re.findall
的用法是这样的: re.findall(pattern, string, flags=0)
另外,你的正则表达式似乎有点问题。你现在匹配的是 "numbers@numbers"。
你可能想要的是这样的:
def emails(doc):
return findall('[\w.]+@[\w.]+', doc)