[Python Challenge通关]第3关 re

bodyguard

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

一个小写字母,每边都有三个大保镖。

挑战地址,点我

分析

右键查看网页源码,可以看到也有一堆字符。

<!--
kAewtloYgcFQaJNhHVGxXDiQmzjfcpYbzxlWrVcqsmUbCunkfxZWDZjUZMiGqhRRiUvGmYmvnJIHEmbT
MUKLECKdCthezSYBpIElRnZugFAxDRtQPpyeCBgBfaRVvvguRXLvkAdLOeCKxsDUvBBCwdpMMWmuELeG
... 省略

根据提示信息,需要找到左右两边都被3个大写字母包围的小写字母,类似 AAAaAAA,可以使用正则表达式来实现:

#!/usr/bin/env/ python3

import re

text = '''复制那一堆字符进来'''
result = re.findall(r'[A-Z]{3}([a-z]{1})[A-Z]{3}', text)
print(''.join(result))

输出结果:

jfeiauzroivgzbmpszazlutnwsdofbiwqdjbzshfrblqgsbydajygcbjwggtdfjeobcmdlzxajvitecgpkcfwqbvkoietpiijanvqjjgtcpadjkgcluaidgumcdskunujfcjfmbzkzsasdxsqqqlaeisjefjfdaoljaywxjthqjknednxnsahxqedoeqsdcmltcsnwakjxtytaalhgabekfmyimwrkffydghiunlriwgkuzqljjbsxguytfsatejmdwkfbzifdknpcqimvehxujszbuyutsompijjojspbwlroefiwmrsjstdjhfwxhnthsoosmoqtufoxvpvpjkgiaqgfrhufxxdnjiwtfqusbkeakunjgknpibklgjounivhgxsnekxgrrbslpuaouvhzbilbirmqqxtktgcnkdljoasnexwtgvwjegurnksokjtrovpmykzgeolwysfidemflmkwmj

找到了一堆字符,把这些字符替换页面的 url 发现失败了,再想下上面的匹配规则是不是有问题?

按照上面的规则,如果字符串中含有类似 AAAAaAAA,这样的也会被匹配出来。

再回头看下提示信息,有个单词 EXACTLY 还特意大写了,意思是要 恰好每边 3 个大写字符,所以需要修改匹配规则,修改成类似 aAAAaAAAa,这样就能保证中间的字符每边恰好有 3 个大写字符。

#!/usr/bin/env/ python3

import re

text = '''复制那一堆字符进来'''
result = re.findall(r'[a-z]{1}[A-Z]{3}([a-z]{1})[A-Z]{3}[a-z]{1}', text)
print(''.join(result))

输出结果:

linkedlist

linkedlist 替换当前页面的 url 就可以进入下一关 http://www.pythonchallenge.com/pc/def/linkedlist.html

补充

打开 http://www.pythonchallenge.com/pc/def/linkedlist.html 发现页面上出现了一个 linkedlist.php

提示我们新的 url 应该是 http://www.pythonchallenge.com/pc/def/linkedlist.php

参考资源:

  1. re 官方文档
  2. re 参考
  3. 正则表达式30分钟入门教程
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,463评论 19 139
  • 一、快捷键 ctr+b 执行ctr+/ 单行注释ctr+c ...
    o_8319阅读 11,106评论 2 16
  • 真的好想你啊,原来我比想象中更依赖你…… 只可惜,你也不再坚持了……
    做自己的小仙女阅读 1,118评论 1 0
  • “啊!我不甘心!”我,是天下第一圣,有着无数神通法宝。虽然我已斩开仙界大门,却又耗尽了最后一滴圣血,掉下圣峰。“我...
    阳珊阅读 2,915评论 4 6
  • 我到悉尼12天了,拿的是一年打工度假签证,小美说我很勇敢,敢走出中国,在异国他乡生活。我对她说,没什么大不了,我能...
    弦LAM阅读 8,209评论 0 4