我大学剩下一年半的生活(四)——pythonchallenge之level3

python challenge level 3的链接为http://www.pythonchallenge.com/pc/def/equality.html

刚刚看到这个题目的时候感觉毫无头绪,什么一个小写字母的两边都是三个大写字母作保镖,这不是猜迷吗。目前可以得到最有用的信息就是标题了,标题告诉我们这题可以使用正则表达式来完成,好吧,那就先来完成正则表达式吧,剩下的估计又是在源代码中一大段的注释。

#! /usr/bin/env python
'''python challenge level 3
question url: www.pythonchallenge.com/pc/def/equality.html
'''
text = '''...'''  # 等会到源代码里去扣出来
import re
print ''.join(re.findall(r'[A-Z]{3}([a-z])[A-Z]{3}', text))

恩,目前为止一切顺利。到代码里面一看,果然又是一大段。。。好吧,要处理的文本已经找到了,接下来就是运行程序,至于结果。。。好吧,我又犯错了。至于为什么,我是真心没发现啊。。。后来搜索了一下找到了python challenge 第三关解法 http://www.pythonchallenge.com这篇文章。果然还是我自己考虑不周全,在提示中对EXACTLY的理解起到了非常关键的作用,EXACTLY所表示的并不仅仅是像我之前写的正则表达式那样,只要小写字母两侧都有3个大写字母就行了,而是要求小写字母的两侧只能有三个大写字母,超过3个就不再是大写字母。那么,对正则表达式做一下简单的修改就行了:

#! /usr/bin/env python
'''python challenge level 3
question url: www.pythonchallenge.com/pc/def/equality.html
'''
text = '''...'''  # 从源代码里去扣出来
import re
print ''.join(re.findall(r'[^A-Z][A-Z]{3}([a-z])[A-Z]{3}[^A-Z]', text))

最后得到的结果是:linkedlist。

那么,最后将equality替换成linkedlist究竟能否得到下一题的链接呢?很可惜,就差一点,不过该页面给出了提示“linkedlist.php ”,所以,下一题的链接为www.pythonchallenge.com/pc/def/linkedlist.php

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值