python核心程式設計筆記正規表示式

2021-10-09 11:43:41 字數 1280 閱讀 1920

標準庫的re模組支援正規表示式

正規表示式時包含文字和特殊字元的字串

擇一匹配符號匹配多個正規表示式模式:|

匹配任意單個字元:.

從字串起始或結尾或單詞邊界匹配:開始(^),結束($),乙個單詞的起始部分(\b),乙個單詞中間的模式(\b)

建立字符集:

限定範圍和否定:指定乙個字元的範圍(-)

閉包操作符實現存在性和頻數匹配:匹配其左邊的正規表示式出現0次或多次的情況(*),匹配一次或多次出現的正規表示式(+),匹配0次或一次出現的正規表示式(?)

精確匹配前面的正規表示式n次或m-n次(,)

表示字符集的特殊字元:匹配任何十進位制數字(\d),全部字母數字的字符集[a-za-z0-9],空格字元(\s),任何非十進位制數(\d)

使用圓括號指定分組:對正規表示式進行分組,匹配子組

擴充套件表示法:?

compile()函式編譯正規表示式

group()返回整個匹配物件或返回特定子組

groups()返回乙個包含唯一或者全部子組的元組

match()函式試圖從字串的起始部分對模式進行匹配,匹配成功就返回乙個匹配物件,匹配失敗,返回none

m = re.match(

'foo'

,'foo'

)#模式匹配字串

if m is

notnone

:#匹配成功,輸出字串

print

(m.group(

))

search()會用它的字串引數,在任意位置對給定正規表示式模式搜尋第一次出現的匹配情況

重複、特殊字元以及分組

group()通常用於以普通方式顯示所有的匹配部分,但也能用於獲取哥哥匹配的子組,可以使用groups()方法來獲取乙個包含所有匹配子字串的元組

m=re.match(

'(\w\w\w)-(\d\d\d)'

,'abc-123'

)

匹配出兩個元組

使用findall()和finditer()查詢每一次出現的位置

findall()查詢字串中某個正規表示式模式全部的非重複出現情況,返回乙個列表

使用sub()和subn()搜尋和替換

將字串中多有匹配正規表示式的部分進行某種形式的替換

subn()還返回乙個表示替換的總數,替換後的字串和表示替換總數的數字一起作為乙個擁有兩個元素的元組返回

split()分割字串

可以分割出有空格的字串

擴充套件符號

python核心程式設計筆記

1 賦值並不是直接將乙個值賦給乙個變數,儘管你可能根據其它語言程式設計經驗認為應該如此。在python 語言中,物件是通過引用傳遞的。在賦值時,不管這個物件是新建立的,還是乙個已經存在的,都是將該物件的引用 並不是值 賦值給變數。一切皆為物件。python 的賦值語句不會返回值,但可以鏈式賦值。x ...

Python核心程式設計 筆記

第13章 物件導向程式設計 object是所有類之母。如果你的類沒有繼承任何其它父類,object將作為預設的父類。類既可 很簡單,也可以很複雜,這全憑你的需要。最簡單的情況,類僅用作命名空間,意味著,你把資料儲存在變數中,對他們按命名空間進行分級,使他們處於相同的關係空間中。類成員可以動態新增,這...

《python核心程式設計》筆記

建立檔案 maketextfile.py 指令碼提醒使用者輸入乙個尚不存在的檔名,然後由使用者輸入檔案每一行,最後將所有文字寫入文字檔案 1 usr bin env python 2 3 maketextfile.py creat text file 4 5 import os 6 ls os.li...