pythonchallenge 解谜 Level 3

第三关。

问题的解法在于正则表达式。

首先。。。你应该能找到需要正则的字符在哪里。。。那就好了!

题意就是说:

One small letter, surrounded by EXACTLY three big bodyguards on each of its sides.

在正则的字符里面找到符合要求的字母。

例如:aTTTfTTTz 那么这个f就是需要正则结果到的字母。

PS:题目中 EXACTLY :精确的。左右两边是三个大写字母,必须是三个。。。

代码:

#-*- coding:utf-8 -*-
#代码版本均为python 3.5.1
#Level 3

import urllib.request
import re

f = urllib.request.urlopen('http://www.pythonchallenge.com/pc/def/equality.html')
data = f.read()

#reg = re.compile('[A-Z]{3}([a-z])[A-Z]{3}') 没有考虑左右两边必须是3个大写字母
reg = re.compile(r'[^A-Z][A-Z]{3}([a-z])[A-Z]{3}[^A-Z]') #[^A-z]表示除了大小写字母以外的字符。
print (''.join(reg.findall(str(data))))

对于正则表达式可以去廖雪峰这里稍作了解

http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143193331387014ccd1040c814dee8b2164bb4f064cff000

正则匹配网络版。。。

http://tool.oschina.net/regex

所以可以得到linkedlist.

可以顺利进入下一关。

http://www.pythonchallenge.com/pc/def/linkedlist.php
原文地址:https://www.cnblogs.com/qipa/p/5501879.html