19 Python 正則模組和Regex

來源:互聯網
上載者:User

標籤:style   nbsp   等等   利用   需要   檔案中   大小寫   個數   1.5   

什麼是模組?

   常見的情境:一個模組就是一個包含了python定義和聲明的檔案,檔案名稱就是模組名字加上.py的尾碼。

   但其實import載入的模組分為四個通用類別: 

  1 使用python編寫的代碼(.py檔案)

  2 已被編譯為共用庫或DLL的C或C++擴充

  3 包好一組模組的包

  4 使用C編寫並連結到python解譯器的內建模組

為何要使用模組?

   如果你退出python解譯器然後重新進入,那麼你之前定義的函數或者變數都將丟失,因此我們通常將程式寫到檔案中以便永久儲存下來,需要時就通過python test.py方式去執行,此時test.py被稱為指令碼script。

    隨著程式的發展,功能越來越多,為了方便管理,我們通常將程式分成一個個的檔案,這樣做程式的結構更清晰,方便管理。這時我們不僅僅可以把這些檔案當做指令碼去執行,還可以把他們當做模組來匯入到其他的模組中,實現了功能的重複利用

如何使用模組?

  模組可以包含可執行檔語句和函數的定義,這些語句的目的是初始化模組,它們只在模組名第一次遇到匯入import語句時才執行(import語句是可以在程式中的任意位置使用的,且針對同一個模組很import多次,為了防止你重複匯入,python的最佳化手段是:第一次匯入後就將模組名載入到記憶體了,後續的import語句僅是對已經載入大記憶體中的模組對象增加了一次引用,不會重新執行模組內的語句)   

  每個模組都是一個獨立的名稱空間,定義在這個模組中的函數,把這個模組的名稱空間當做全域名稱空間,這樣我們在編寫自己的模組時,就不用擔心我們定義在自己模組中全域變數會在被匯入時,與使用者的全域變數衝突

 

Regex

Regex本身也和python沒有什麼關係,就是匹配字串內容的一種規則

官方定義:Regex是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成一個“規則字串”,這個“規則字串”用來表達對字串的一種過濾邏輯。
線上測試載入器 http://tool.chinaz.com/regex/

  字元組:同一個位置上可以出現的字元的範圍。

    在同一個位置可能出現的各種字元組成了一個字元組,

    在Regex中用[]表示 字元分為很多類,比如數字、字母、標點等等。

    假如你現在要求一個位置"只能出現一個數字",那麼這個位置上的字元只能是0、1、2...9這10個數之一。

 

正則
待匹配字元
匹配
結果
說明
[0123456789]
8
True
在一個字元組裡枚舉合法的所有字元,字元組裡的任意一個字元
和"待匹配字元"相同都視為可以匹配
[0123456789]
a
False
由於字元組中沒有"a"字元,所以不能匹配
 
[0-9]
 
7
True
也可以用-表示範圍,[0-9]就和[0123456789]是一個意思
 
[a-z]
 
s
 
True
 
同樣的如果要匹配所有的小寫字母,直接用[a-z]就可以表示
 
[A-Z]
 
B
 
True
 
[A-Z]就表示所有的大寫字母
 
[0-9a-fA-F]
 
e
 
True
 
可以匹配數字,大小寫形式的a~f,用來驗證十六進位字元

 

字元:

 
元字元
 
匹配內容
匹配除分行符號以外的任一字元
\w 匹配字母或數字或底線
\s 匹配任意的空白符
\d 匹配數字
\n 匹配一個分行符號
\t 匹配一個定位字元
\b 匹配一個單詞的結尾
^ 匹配字串的開始
$ 匹配字串的結尾
\W
匹配非字母或數字或底線
\D
匹配非數字
\S
匹配非空白符
a|b
匹配字元a或字元b
()
匹配括弧內的運算式,也表示一個組
[...]
匹配字元組中的字元
[^...]
匹配除了字元組中字元的所有字元

 

量詞:

量詞
用法說明
* 重複零次或更多次
+ 重複一次或更多次
? 重複零次或一次
{n} 重複n次
{n,} 重複n次或更多次
{n,m} 重複n到m次

 

19 Python 正則模組和Regex

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.