10.26日面试总结
正则,正则,神奇的正则啊,正则之神,你好,你厉害,
python正则匹配IP,
pat=r".*(((25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)).*" tmp=re.match(pat,"这是个IP地址09.145.132.2是的") if tmp: print tmp.groups() print tmp.groups(0)
('9.145.132.2', '132.', '132', '2')
正则匹配邮箱
pat=r'([-\.\w]{1,64}@([-\w]{1,63}\.)+[-\w]{1,63})' matchobj=re.search(pat,"这是个邮件地址xqnq2007@163.com,是的") if matchobj: print matchobj.group(0)
正则匹配URL
pat=r'((http://)?www\.[-\w]+\.com(\.cn)?/([-\w\.]+\/)+([-\w\.]+))' matchobj=re.search(pat,"这是个邮件地址http://www.baidu.com.cn/a/b/ccd/fdfds.jpg,是的") if matchobj: print matchobj.groups() print matchobj.group(0),matchobj.group(1),matchobj.group(2),matchobj.group(3),matchobj.group(4)
filter函数:
nums=range(2,20)
for i in nums:
nums=filter(lambda x:x==i or x%i,nums)
print nums
结果 2 3 5 7 11 13 17 19
分析: 每次过滤,留下当前i,以及不能被i整除的数
filter函数过滤后,要赋值给一个新变量,filter对nums不做改变,而是生成了新的list
filter,将执行结果为True的item返回
map,对序列中的每一项依次执行函数,将结果组成list返回
python全局变量和局部变量区别,函数内部如何对全局变量赋值: