Python高階 多執行緒 08 正規表示式

2021-08-28 06:43:08 字數 2558 閱讀 1407

cpu密集型程式:主要

正規表示式

作用:對資料的匹配/過濾

特點:強大,通用

所有的正則加上r字元一定沒毛病

使用:import re

match()函式作用:從頭開始匹配,失敗則返回

search()函式作用:從頭匹配到尾,成功返回物件,失敗往後搜尋,最終沒有匹配返回空

匹配結果物件 = re.match(r"正規表示式",資料) 

匹配結果物件 = re.search(r"正規表示式",資料) 

search

輸出結果 :結果物件.group()   

沒有成功:成功:返回結果物件    失敗:往後搜尋,最終沒有匹配返回空

match

輸出結果 :結果物件.group()    

沒有成功:成功:返回結果物件     失敗:為none  

匹配乙個字元-元字元

. 字元       匹配除換行符之外的任意乙個字元

字元      匹配集合中的任意乙個字元

[a-z]        匹配字元範圍

[^]           禁止匹配集合中的任意乙個字元

\d            匹配0-9任意字元

\d            匹配任意乙個非數字字元

\s             匹配任意乙個空白字元

\s             匹配任意乙個非空白字元

\w            匹配數字 字母 下劃線任意乙個字元

\w            匹配任意乙個非單詞字元

匹配多個字元 - 量詞

匹配n次

匹配至少n次,最多m次

*號            匹配0次或者任意多次

+              匹配至少一次

?             匹配0-1次,可有可無

匹配開始位置和結束位置

開始位置:r"^x"    要求以..開始

結束位置:r"x$"    要求以..結束

匿名分組:此時必須加r

目的:將資料從整體中提取出來

建立:r"(正則)"

獲取方式: 匹配結果物件.group(分組編號)

引用分組資料:在正則後續位置使用前面分組的資料

r '() \分組編號'

|    匹配左右表示式:或

()    匹配括號中 | 左右的任何乙個表示式

print(re.search("^\w@(qq|sina).com$" ,"[email protected]").group())

有名分組    命名分組

分組名字

建立:r"(?p《分組別名》正則)"

獲取資料:結果物件.group('分組名字')

引用:(?p = 分組名)

應用場景:在分組很多時,引用複雜,此時修改分組導致編號變化,匿名分組引用會失效

re高階模組

search        只查詢一次,返回匹配結果

findall        從資料中查詢制定規則的所有資料,返回值是包含所有結果的 列表

re.findall(r"",資料)--->[匹配結果,...]

sub            將匹配的資料進行替換 

re.sub(r"\d+", "666" , "c=1 c=2 c=3",count = 1)

引數      一         二                三                    count

將 引數三 中的符合 引數一 規則的資料替換成 引數二  count 確定替換次數,返回值為最終替換後的結果

注:引數二中不僅僅可以是直接的字串資料,

還可以是乙個函式名稱《函式引數    返回值要求為str型別》

def func(matchobj):

"""引數是包含了匹配結果的結果物件    返回值是替換後的資料"""

#將正則中匹配的數字構成+1

data = matchobj.group()

print(data)

data = 1 + int(data)

#返回值必須是str型別

return str(data)

篩選網頁資料

re.sub(r"\s|| " , "" , data)

split        匹配進行切割字串,返回列表

re.split(",|:",mystr,maxsplit=1)

正則條件    內容    次數

貪婪模式 與非貪婪模式

預設貪婪模式

非貪婪  在"*","?","+","" 後加?,使貪婪變為非貪婪

相對概念

前提條件:能否滿足整體正規表示式匹配 盡量貪婪

r字元:

對正則中的  '\'  自動加  '\'  進行轉義

python高階 多執行緒

1.1 獲取執行緒數 import threading import time def fun time.sleep 1 print hello t threading.thread target fun t.start print threading.enumerate while true le...

Python高階(多執行緒)

多執行緒結構 import threading def worker 子執行緒要執行的具體邏輯 函式 print threading t1 threading.current thread time.sleep 9 通過休眠模擬子執行緒非同步邏輯 print t1.getname new t thr...

Python高階 多執行緒 05 執行緒

併發 時間段內多個程式輪流執行 並行 同乙個時刻不同cpu同時執行 執行緒 程式執行中,執行 的乙個分支。每個執行至少都有乙個執行緒.執行緒是作業系統排程資源的基礎單位 1.建立 import threading 方法 thread group 執行緒組,目前只能使用none target 執行的目...