关卡介绍:
操作步骤
废话就不多说了。直接就是将源码的注释部分 copy到项目中,然后继续读取出来。看看又有什么怪异的部分!
从图中我们可以得到这样的提示。 One small letter ,surrounded by EXACTLY three big bodyguards on each of its sides 什么意思呢。就是3个大写字母中间夹一个小写字母再加3个大写字母。(想到什么必须是正则!!)
直接上代码:
# -*- coding:utf-8 -*-
# **********************************
# ** http://weibo.com/lixiaodaoaaa #
# ** create at 2017/6/13 19:28 ***
# ****** by:lixiaodaoaaa ***********
import re
myUrl = "http://www.pythonchallenge.com/pc/def/equality.html"
myReText = file("re.txt").read()
myPattern = r"[^A-Z][A-Z]{3}[a-z][A-Z]{3}[^A-Z]"
##圆括号的内容 应该用()括起来 直接运行 OKKK
# 为什么 括起来呢?因为 要取到这个匹配的中间字符 关键字
skipSubjectName = "".join(re.findall(myPattern, myReText))
print skipSubjectName
运行的结果:
qIQNlQSLieOEKiVEYjaZADnMCZqbZUTkLYNguCNDeHSBjkOIXdKBFhdXJVlGZVmgZAGiLQZxvCJAsACFlqKWGtIDCj
沉思
好像有点问题。 我们应该只需取到小写的中间字母即可,为何这样垃圾的代码?! 对。我们更改下关键匹配的正则表达式:把:
myPattern = r"[^A-Z][A-Z]{3}[a-z][A-Z]{3}[^A-Z]"
更改为:myPattern = r"[^A-Z][A-Z]{3}([a-z])[A-Z]{3}[^A-Z]" 表示把中间的小写字母匹配到的结果返回出来。
修正后的代码
# -*- coding:utf-8 -*-
# **********************************
# ** http://weibo.com/lixiaodaoaaa #
# ** create at 2017/6/13 19:28 ***
# ****** by:lixiaodaoaaa ***********
import re
myUrl = "http://www.pythonchallenge.com/pc/def/equality.html"
myReText = file("re.txt").read()
myPattern = r"[^A-Z][A-Z]{3}([a-z])[A-Z]{3}[^A-Z]"
##圆括号的内容 应该用()括起来 直接运行 OKKK
# 为什么 括起来呢?因为 要取到这个匹配的中间字符 关键字
skipSubjectName = "".join(re.findall(myPattern, myReText))
print skipSubjectName
最后需要跳转的页面实际上是:http://www.pythonchallenge.com/pc/def/linkedlist.html