2017-08-13 80 views
-1

我是python的新手,我正在解決一個問題。誰能告訴應有之義,如果下面的代碼行:Python正則表達式理解

if collections.Counter(re.findall(r"[\w']+", decrypted))[repeat] >= 2: 
      return decrypted 

解密是一個長字符串,然後重複是在串詞。

預先感謝您。

回答

0

讓我們:

decrypted = "foo bar baz" 

然後

re.findall(r"[\w']+", decrypted) 

回報listdecrypted子的匹配規則r"[\w']+"所有字母,數字或單引號符號字符串。結果是['foo', 'bar', 'baz']

方法collections.Counter創建一個特殊的dict像列表中的對象。此對象的運算符[x]返回給定列表中的x的計數。

最後:

collections.Counter(re.findall(r"[\w']+", decrypted))[repeat] 

回報decryptedrepeat亞系。

0

\w任何單詞字符(相當於[a-zA-Z0-9_]意思所有的字母和數字,下劃線

+意味着1次以上(但至少1)

您嘗試findall(全球)匹配

online explaination