Python中re.findall()函数是要求正则表达式在捕获第0组数据时,要在正则表达式上加小括号才能捕获.
也就是说如果你要获取整个正则表达式匹配的数据(你这里是电子邮箱地址),需要在正则表达式外面加小括号,
然后取第0捕获组的数据(你这里是[x[0] for x in zhengze]),
因为findall函数把每一个匹配的多个捕获组(就是你正则表达式中的小括号中)的数据放到一个元组里,所以要用for循环把第0捕获组的数据取出来.
具体程序改进如下
>>>zhengze=re.findall("([A-Za-z0-9]+@(163|qq|gmail)\.com)",txt)>>>[x[0] for x in zhengze]
结果就是你要的邮箱列表了.
可以使用datetime包的strptime函数
from datetime import datetimes = 'Wed, 8 Jul 2015 15:18:12 +0800 (UTC)'
date = datetime.strptime(s[5:24],'%d %b %Y %H:%M:%S')
print('Month:', date.month)
print('Day:', date.day)
'%d %b %Y %H:%M:%S',是时间字符串,每一个%x对应一种类型的时间
会解析成datetime类型