Python挑战游戏( PythonChallenge)闯关之路Level- 3

闯关过程

闯关入口:http://www.pythonchallenge.com/pc/def/equality.html




根据页面提示, 应该是寻找字符串, 一个小写字母两边都是3个大写字母,类似如下:

bXXXtXXXb

即  b 是任意非大写字母

     X 是大写字母

     t  就是要找的目标字母


import urllib2
import HTMLParser
import re
from string import maketrans,translate,lowercase,punctuation

def get_html_Pages(url):
	try: 
		headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.2; rv:16.0) Gecko/20100101 Firefox/16.0'}
		#构建请求的request  
		request=urllib2.Request(url,headers=headers)  
		#利用urlopen获取页面代码  
		response=urllib2.urlopen(request)  
		#将页面转化为UTF-8编码格式  
		html=response.read().decode('utf-8')
		html=HTMLParser.HTMLParser().unescape(html)#处理网页内容, 可以将一些html类型的符号如" 转换回双引号		
		return html  
	#捕捉异常,防止程序直接死掉  
	except urllib2.URLError,e:
		print u"连接失败,错误原因",e.reason  
		return None  
	except urllib2.HTTPError,e:    
		print u"连接失败,错误原因:%s " % e.code    
		return None 	

def level3(self):
	level3_url='http://www.pythonchallenge.com/pc/def/equality.html'
	html=get_html_Pages(level3_url)#获取网页内容
		
	tips_string_pattern=re.compile('<!--(.*?)-->',re.S)#定义匹配规则,获取网页中注释的内容 
	tips_string=re.search(tips_string_pattern,html).group(1).strip()

	#匹配规则, 一个小写字母两边有且都有3个大写字母
	find_pattern=re.compile(r'[^A-Z][A-Z]{3}([a-z])[A-Z]{3}[^A-Z]')
	print ''.join(re.findall(find_pattern,tips_string))


结果是:

linkedlist



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值