今天發現了乙個非常有意思的regex

2021-08-29 06:36:28 字數 516 閱讀 3368

判斷乙個數是否為質數的方法:

[code]

import re

def is_prime(num):

return not re.match(r"^1?$|^(11+?)\1+$", '1' * num)

[/code]

[quote]

這段**除了漂亮精巧值得欣賞,以及可以用來玩味理解regex以外,還有什麼價值呢?效率?顯然不夠高。實用性?恐怕也沒有多少。不過,這段**隱含了重要的程式設計思想:編碼。我們可以把一段問題用某種方式表達出來,再根據這段表達謀求解決之道。這種方法看似簡單,卻應用廣泛。我們可以把各式自動機用字串表示出來,由此相對容易地發現很多深刻的性質。我們把系統規格用狀態機描述出來,再把狀態機用邏輯公式表達出來,於是我們可以自動驗證系統規格有沒有邏輯上的缺陷,有沒有安全問題。進一步說,我們賴以為生的整個計算體系也是建立編碼的基礎上:所有的資料所有的命令最終被轉換為0和1表示。計算理論基礎更離不開編碼。從歌德爾定理到圖靈機理論到自動機理論到計算複雜性,不知多少偉大的證明依靠編碼。[/quote]

今天發現了c 符號過載的乙個非常實用的使用例項。

在看litesql這個專案的原始碼的時候發現一段非常有趣的 我的第一反應是 string 竟然還可以這樣用?隨即寫了一段測試 編譯後卻得到這樣的錯誤 g o tt tt.cc tt.cc in function int main int,char tt.cc 9 error no match for...

今天發現了乙個sql的小問題

這裡有三條sql語句,想找到存在tbla中,卻又不在tblb中的記錄數 select count from tbla select count from tbla where pid in select pid from tblb select count from tbla where pid n...

乙個有意思的問題

a b這個表示式如何理解?應該理解成a b還是a b,還是a b呢?應該按第一種方式理解。編譯的過程分為詞法解析和 語法解析兩個階段,在詞法解析階段,編譯器總是從前到後找最長的合法token。把這個表 達式從前到後解析,變數名a是乙個token,a後 面有兩個以上的 號,在c語言中乙個 號是合法的t...