前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 ># python # # Challenge # Level 3

# python # # Challenge # Level 3

作者头像
滚神大人
发布2019-09-10 18:52:35
4020
发布2019-09-10 18:52:35
举报
文章被收录于专栏:趣Python趣Python

这个是 Python Challenge 的 Level 3。

这个图有一点点提示,关键仍然是图下面的一行字:

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

网页上也没有给出其他提示,这句话的直接翻译就是:一个小写字母,两边各站着三个大个保镖。

有了上个Level的提示,我们去查阅下网页源代码,啊哈,有一大堆提示。

<html><head>
 <title>re</title></head><body><!--
kAewtloYgcFQaJNhHVGxXDiQmzjfcpYbzxlWrVcqsmUbCunkfxZWDZjUZMiGqhRRiUvGmYmvnJIHEmbT
MUKLECKdCthezSYBpIElRnZugFAxDRtQPpyeCBgBfaRVvvguRXLvkAdLOeCKxsDUvBBCwdpMMWmuELeG
ENihrpCLhujoBqPRDPvfzcwadMMMbkmkzCCzoTPfbRlzBqMblmxTxNniNoCufprWXxgHZpldkoLCrHJq
vYuyJFCZtqXLhWiYzOXeglkzhVJIWmeUySGuFVmLTCyMshQtvZpPwuIbOHNoBauwvuJYCmqznOBgByPw
TDQheAbsaMLjTmAOKmNsLziVMenFxQdATQIjItwtyCHyeMwQTNx...
-->

这里有两个提示,标题是re,这不是正则表达式是啥? 再看下面的是一大堆的字母,结合图片的提示,应该是要找到”AAAaAAA”这样的字符串,其中AAA表示大保镖(大写字母),中间一个是小写字母。

有了上一个Level的积累,代码很容易:

# coding=utf-8# equalityimport re
string = "kAewtloYgcFQaJNhHVGxXDiQm..."  # 太长了,文章贴不下,略去print(''.join([x[4] for x in re.findall('[^A-Z][A-Z]{3}[a-z][A-Z]{3}[^A-Z]', string)]))

运行结果:

linkedlist
[Finished in 0.4s]

最佳答案1,2,3:

print("".join(re.findall('[^A-Z][A-Z]{3}([a-z])[A-Z]{3}[^A-Z]', string)))
print("".join(x[1] for x in re.findall('(^|[^A-Z])[A-Z]{3}([a-z])[A-Z]{3}([^A-Z]|$)', string)))
print("".join(re.findall("(?<=[^A-Z][A-Z]{3})[a-z](?=[A-Z]{3}[^A-Z])", string)))

点评:

  • 都很好
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-02-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 趣Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档