我正在尝试使用RegEx中的findall()函数在URL地址中查找电子邮件地址。这是我想要的结果(输入shell):
>>>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)
我知道这很简单,但我无法弄清楚我的第二个参数是什么,所以我不断得到一个空列表。有人可以向我解释原因吗?
答案 0 :(得分:2)
您将为其提供content
,其作为参数doc
传递:
def emails(doc):
return findall('[\d]*@[\d]+', doc)
re.findall
具有以下语法:re.findall(pattern, string, flags=0)
此外,你的正则表达式似乎已关闭。您目前正在匹配“数字@数字”。
你可能想要这样的东西:
def emails(doc):
return findall('[\w.]+@[\w.]+', doc)