python challenge 第三關解法 http://www.pythonchallenge.com

來源:互聯網
上載者:User
import res = ''.join(s.split())fetch = re.compile(r'[^A-Z][A-Z]{3}([a-z])[A-Z]{3}[^A-Z]').findallprint ''.join(fetch(s))

結果為:linkedlist

s 為第三關網頁源碼中的被注釋的部分,第三關網頁為:http://www.pythonchallenge.com/pc/def/equality.html

解決這關的關鍵就在於第三關圖片下面的圖示資訊:

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

該句的意思是:有一個小寫字母,它的兩邊有三個大寫字母。

這句話的關鍵點在於 EXACTLY 表達的意思,其實它的意思是表示 這個小寫字母兩邊只有三個大寫字母,是”只有“。

本人英文比較爛,剛開始的時候,自認為小聰明,以為 EXACTLY 是大寫的、粗體字,還比其他單詞要大,於是自然而然的寫下了如下正則:

fetch = re.compile(r'[EXACTLY]{3}([a-z])[EXACTLY]{3}').findall

可是運行起來才發現,錯啦,-_-

於是轉化思路,再次寫了個錯誤正則

fetch = re.compile(r'[A-Z]{3}([a-z])[A-Z]{3}').findall

-_-到底咋回事呢,原來,我還是沒完全搞懂意思,其實應該是小寫字母的兩邊只能有3個大寫字母,不能多,也不能少,所以正確的正則應該是:

fetch = re.compile(r'[^A-Z][A-Z]{3}([a-z])[A-Z]{3}[^A-Z]').findall

很受傷呀……

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.