python challenge 3解题总结

python challenge 3网址:www.pythonchallenge.com/pc/def/equality.html
 

图片下面显示一句话:One small letter, surrounded by EXACTLY three big bodyguards on each of its sides.


从提示的话语里面可以看出需要寻找一个小写字母左右各有三个大写字母的形式,例如:1ASDaFGH9.


接着查看网页源码,能够发现一大堆类似“kAewtloYgcFQaJNhHVGxXDiQmzjfcpYbzxlWrVcqsmUbCunkfxZWDZjUZMiGqhRRiUvGmYmvnJIHEmbT”这样的字符串,联想到提示,就知道需要寻找一些小写字符,小写字符的形式是左右各三个大写字母。


源代码如下:

import urllib
import re
urldata=urllib.urlopen("http://www.pythonchallenge.com/pc/def/equality.html")
geturldata=urldata.read()
getdata=re.findall(r'',geturldata,re.S)
charlist =''.join(re.findall(r'[^A-Z][A-Z]{3}([a-z])[A-Z]{3}[^A-Z]', getdata[0], re.S)) 
print charlist

输出linkedlist
也可以把字符串拷贝进一个本地文档,直接读取文档,用正则表达式匹配出符合要求的字符。