Python re模組 subprocess模組

2022-08-28 12:30:09 字數 3323 閱讀 1490

re模組

內部實現不是python 而是呼叫了c的庫

re是什麼

正則 表達 式子

就是一些帶有特殊含義的符號或者符號的組合

作用: 對字串進行過濾

在一對字串中找到所關心的內容

你就需要告訴計算機過濾規則是什麼樣

通過什麼方式來告訴計算機 就通過正規表示式

re模組常用方法

findall -------- 從左往右查詢所有滿足條件的字元 返回乙個列表

search -------- 返回第乙個匹配的字串 結果封裝為物件 span=(0,5)匹配的位置 match匹配的值

match --------- 匹配行首 返回值與search相同

----------------- 對於search match 匹配的結果通過group來獲取

compile -------- 將正規表示式封裝為乙個正則物件 好處是可以重複使用這個表示式

第一步:

學習正規表示式 各種符號所表示的含義

各種符號

常用的\w \s \d . ^ $

範圍匹配

a|b重複匹配

{} + * ?

分組()

常用的方法:

findall

search

match

subsplit

2.subprocess

run 返回執行結果物件

call 返回執行狀態碼

popen 返回的也是物件 out in err

程序間的資料訪問

importre#

待處理字串

#src = 'hades'

#在字串中查詢所有滿足條件的

#print(re.findall('ad',src))

#\w 字母數字下劃線

#\w 非字母數字下劃線 與\w相反

#print(re.findall('\w',src))

#print(re.findall('\w',src))

#\s 所有不可見字元

#\s 所有可見字元

#print(re.findall('\s',src))

#print(re.findall('\s',src))

#\d 所有數字可見

#\d 所有非數字可見

#print(re.findall('\d',src))

#print(re.findall('\d',src))

#特殊字元直接匹配

#print(re.findall('\n',src))

#print(re.findall('\t',src))

#. 除了\n以外任意字元

#print(re.findall('.',src))

#\s \w \d . 都是匹配單個字元

#匹配重複字元 * + ? {}

#* 前面的表示式出現任意次

#print(re.findall('\d*','1 12 aa'))

#+ 重複1次或多次

#print(re.findall('\d+','1 1221abc41515a aa'))

#? 重複0次或1次

#print(re.findall('\d?','aa bb a1c 1c1 哈哈哈 123'))

# 最少n次 最多m次

#print(re.findall('\d','1 12 123 1234 123456'))

# 必須是n次

#print(re.findall('[a-z]','a aa aaa aaaa aaaaa'))

# 最大m次 0-m

#print(re.findall('[a-z]','a aa aaa aaaa aaaaa'))

#匹配範圍

#| 0|1|2 或

#print(re.findall('0|1|2','12413sdfg'))

# 字元集合 括號內的符號不是整體

#print(re.findall('[012]','1982asasa'))

#在範圍匹配時使用 ^ 託字元表示取反

#print(re.findall('[^0-9]','1982asasa'))

#找出範圍內 數字0-9 字母a-z a-z 注意(減號只有在兩個字元中間才代表範圍,在兩邊都是普通字元)

#print(re.findall('[0-9a-za-z]','1982+asasa'))

#^ 匹配行首

#print(re.findall('^h','helhhlohh'))

#$ 匹配行尾 注意:寫在表示式後面

#print(re.findall('s$','helhhlohs'))

#單詞邊界

#print(re.findall('o\\b','hello word hi hades'))

#雙斜槓?

#print(re.findall('a\\\\c','aakakja\c'))

#貪婪匹配 * + 注意: 不是固定寫法 是一種現象

#會一直匹配到不滿足條件為止 用問號來阻止貪婪匹配(匹配最少滿足條件的字元數)

#print(re.findall('\w+? ','dfgregersg'))

#print(re.findall('\w*? ','dfgregersg'))

#() 用於給正規表示式分組(group)

#什麼時候需要阻止貪婪

#src = '

'#請用正規表示式取位址

#print(re.findall('src="(.+?)"',src))

#了解 加上?: 可以取消括號中的優先順序

#print(re.findall('src="(?:.+?)"',src))

subprocess模組

sub 子

process 程序

什麼是程序

正在進行中的程式 每當開啟乙個程式就會開啟乙個程序

每個程序包含執行程式所需的所有資源

正常情況下,不可以跨程序訪問資料

但是有些情況下就是需要訪問別的程序資料 提供乙個叫做管道的物件 專門用於跨程序通訊

作用: 用於執行系統命令

常用方法:

run 返回乙個表示執行結果的物件

call 返回的執行的狀態碼

總結: subprocess的好處是可以獲取指令的執行結果

subprocess執行指令時,可以在子程序中這樣

Python re 正則模組

有些字元比較特殊,它們和自身並不匹配,而是會表明應和一些特殊的東西匹配,或者它們會影響到 re 其它部分的重複次數,它們叫元字元。其中 m 和 n 是十進位制整數。該限定符的意思是至少有 m 個重複,至多到 n 個重複。舉個例子,a b 將匹配 a b a b 和 a b 它不能匹配 ab 因為沒有...

python re 模組小結

前言 本人環境windows 7 64 位,python2.7 re是什麼 regular expression縮寫,意為正規表示式,是 python 的眾多模組之一 re用途 從文字中有選擇的批量抽取想要的文字碎片 re型別 分為dfa 確定的有窮狀態自動機 和 nfa 非確定的有窮狀態自動機 r...

Python re正則模組

對於比較複雜的字串處理任務,需要依靠正規表示式。首先需要匯入 re 模組 import re常用的元字元 符號含義 匹配除 n 和 r 之外的任何單個字元。匹配字串開始位置 匹配字串結束位置 前面的元素重複0次,1次或多次 前面的元素重複0次或1次 前面的元素重複1次或多次 前面的元素出現了n次 前...