python擁有強大的標準庫。從如今起,開始學習標準庫中提供的一些經常使用功能。
首先看正規表示式(regular expression),它的主要功能是從字串(string)中通過特定的模式(pattern),搜尋想要找到的內容。
比如:要從乙個字串中找出全部的數字,我們能夠這樣做:
import re
str = "int2str"
m = re.search("[0-9]",str)
print(m.group(0))
輸出:
2re.search()接收兩個引數,第乙個正規表示式。是匹配條件。
re.search()假設從第二個引數是目標字串。
返回乙個物件m,通過m.group()檢視搜尋到的結果;沒有找到。則返回none。
經常使用函式:
m = re.search(pattern, string)搜尋整個字串,直到發現符合的子字串。
m = re.match(pattern, string)從頭開始檢查字串是否符合正規表示式。必須從字串的第乙個字元開始就相符。
對於返回的m, 我們使用m.group()來呼叫結果。
str = re.sub(pattern, replacement, string)在string中利用正則變換pattern進行搜尋,對於搜尋到的字串,用還有一字串replacement替換。
返回替換後的字串str。
re.split()依據正規表示式切割字串, 將切割後的全部子字串放在乙個表(list)中返回
re.findall()依據正規表示式搜尋字串。將全部符合的子字串放在一給表(list)中返回
正規表示式:
1)單個字元:
. 隨意乙個字元
a|b 字元a或字元b
[afg] a或者f或者g的乙個字元
[0-4] 0-4範圍內的乙個字元
[a-f] a-f範圍內的乙個字元
[^m] 不是m的乙個字元
s 乙個空格
s 乙個非空格
d [0-9]
d [^0-9]
w [0-9a-za-z]
w [^0-9a-za-z]
2)反覆
緊跟在單個字元之後,表示多個這樣類似的字元
* 反覆 >=0 次
+ 反覆 >=1 次
? 反覆 0或者1 次
反覆m次。比方說 a相當於aaaa,再比方說[1-3]相當於[1-3][1-3]
反覆m到n次。
比方說a表示a反覆2到5次。
小於m次的反覆,或者大於n次的反覆都不符合條件。
比如:[0-9] 9678
a?b b
a+b aaaaab
3) 位置
^ 字串的起始位置
$ 字串的結尾位置
比如:正則表達 相符的字串舉例 不相符字串
^ab.*c$ abeec cabeec
4)返回控制
有可能對搜尋的結果進行進一步精簡資訊。比方以下乙個正規表示式:
output_(d)
該正規表示式用括號()包圍了乙個小的正規表示式。d。 這個小的正規表示式被用於從結果中篩選想要的資訊(在這裡是四位數字)。
這樣被括號圈起來的正規表示式的一部分。稱為群(group)。
我們能夠m.group(number)的方法來查詢群。group(0)是整個正則表達的搜尋結果,group(1)是第乙個群……
import re
m = re.search("output_([0-9])", "output_1986.txt")
print(m.group(0),m.group(1))
輸出:
('output_1986', '1986')
我們還能夠使用(?p...)為group命名,以便更好地使用m.group查詢:
import re
m = re.search("output_(?p[0-9])", "output_1986.txt")
print(m.group("year"))
輸出:1986
堅持每天都能學一點新東西。好了。今天就先到這裡了。
Python學習筆記(十二) 標準庫
sys標準庫 sys主要負責直譯器與程式的互動,提供了一系列的函式用於和直譯器進行互動,並可以通過該模組訪問直譯器使用或者維護的變數。詳解文章 os標準庫 os模組負責程式與作業系統的互動,提供了訪問作業系統底層的介面。常用方法有 os.remove path filename 刪除檔案 os.re...
python學習筆記 13 標準庫
1.包 模組基本概念 2.sys模組 函式 變數 描述ar 命令列引數,包括指令碼名稱 exit arg 退出當前的程式,可以引數為給定的返回值或錯誤資訊 modules 對映模組名稱到載入模組的字典 path 查詢模組所在的目錄的目錄列表 platform 平台表示,類似sunos5或win32的...
python學習23之標準庫
使用模組的時候都要先導入 string是特例 1.calendar 跟日曆相關的模組 import calendar calendar importcalendar calendar.calendar year,w 2,l 1,c 6 返回乙個多行字串格式的year年年曆,3個月一行,間隔距離為c。...