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次 前...