python--常用模塊之正則
阿新 • • 發佈:2018-06-09
sdi 組成 hashlib 解釋 判斷 認識 BE str random模塊
引自:http://www.cnblogs.com/haiyan123/p/7298967.html
認識模塊
常見模塊分類
正則表達式
re模塊
re模塊和正則表達式的關系
collections模塊
一、認識模塊
什麽是模塊:一個模塊就是一個包含了python定義和聲明的文件,文件名就是加上.py的後綴,但其實import加載的模塊分為四個通用類別 :
1.使用python編寫的代碼(.py文件) 2.已被編譯為共享庫二和DLL的C或C++擴展 3.包好一組模塊的包 4.使用C編寫並連接到python解釋器的內置模塊
為何要使用模塊?
如果你想退出python解釋器然後重新進入,那麽你之前定義的函數或變量都將丟失,因此我們通常將程序寫到文件中以便永久保存下來,需要時,就通過python test.py 方式去執行,此時test.py被稱為腳本script。
隨著程序的發展,功能越來越多,為了方便管理,我們通常將文件分成一個個的文件,這樣做程序的結構更清晰,方便管理。這時我們不僅僅可以吧這些文件當做腳本去執行,還可以把它們當做模塊來導入到其他模塊中,實現了功能的重復利用。
二、常見模塊分類
常用模塊一、
collocations 模塊 時間模塊 random模塊 os模塊 sys模塊 序列化模塊 re模塊
常用模塊二:這些模塊和面向對象有關
hashlib模塊
configparse模塊
logging模塊
三、正則表達式
像我們平常見的那些註冊頁面啥的,都需要我們輸入手機號碼吧,你想我們的電話號碼也是有限定的吧(手機號碼一共11位,並且只以13,14,15,17,18開頭的數字這些特點)如果你的輸入有誤就會提示,那麽實現這個程序的話你覺得用While循環so easy嘛,那麽我們來看看實現的結果。
while True: phone_number=input(‘請輸入你的電話號碼:‘) if len(phone_number)==11 and判斷手機號碼是否合法phone_number.isdigit() and (phone_number.startswith(‘13‘) or phone_number.startswith(‘14‘) or phone_number.startswith(‘15‘) or phone_number.startswith(‘17‘) or phone_number.startswith(‘18‘)): print(‘是合法的手機號碼‘) else: print(‘不是合法的手機號碼‘)
看到這個代碼,雖說理解很容易,但是我還有更簡單的方法。那我們一起來看看吧。
import re phone_number=input(‘請輸入你的電話號碼:‘) if re.match(‘^(13|14|15|17|18)[0-9]{9}$‘,phone_number): ‘‘‘^這個符號表示的是判斷是不是以13|14|15|17|18開頭的, [0-9]: []表示一個字符組,可以表示0-9的任意字符 {9}:表示後面的數字重復九次 $:表示結束符 ‘‘‘ print(‘是合法的手機號碼‘) else: print(‘不是合法的手機號碼‘)判斷手機號碼輸入是否合法
大家可能都覺的第一種方法更簡單吧,但是如果我讓你從整個文件中匹配出所有的手機號碼,你能用python寫出來嗎?但是導入re模塊和利用正則表達式就可以解決這一個問題了。
那麽什麽是正則呢?
首先你要知道的是,談到正則,就只和字符串相關了。在線測試工具 http://tool.chinaz.com/regex/
比如你要用‘1’去匹配‘1’,或者用‘2’去匹配‘2’,直接就可以匹配上。
字符組:[字符組]
在同一位置可能出現的各種字符組成了一個字符組,在正則表達式中用[]表示
字符分為很多類,比如數字,字母,標點等。
假如你現在要求一個位置‘只能出現一個數字’,那麽這個位置上的字符只能是0、1、2、3.......9這是個數之一。
python--常用模塊之正則