1. 程式人生 > >python--常用模塊之正則

python--常用模塊之正則

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--常用模塊之正則