python中的正则表达式中的 "|"

Python025

python中的正则表达式中的 "|",第1张

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 datetime

s = '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类型