30天Python基礎(正規表示式)

2021-10-08 00:28:05 字數 3846 閱讀 7506

正規表示式是對字串操作的⼀種邏輯公式,就是⽤事先定義好的⼀些特定字元、

及這些特定字元的組合,組成⼀個「規則字串」,這個「規則字串」⽤來表達對字

符串的⼀種過濾邏輯。

1.為什麼使⽤正規表示式

原⼦含義

\d0-9中任何⼀個字元 [0-9]

\d⾮0-9中的任何⼀個字元 [^0-9]

\s\n\r\t 空格

\s⾮\n\r\t 空格中任何⼀個字元 [^\n\t\r ]

⾃⼰建立的原⼦表,[0-4]代表0-4中任何⼀個字元

[^]排除原⼦表中的字元

^⾏⾸;在原⼦表中表示排除

$⾏結尾

[\u4e00-\u9fa5]

匹配純中⽂

\w0-9a-za-z的中任何⼀個字元 [0-9a-za-z]

\w⾮0-9a-za-z_的中任何⼀個字元[^0-9a-z_az]

.代表除\n之外的任何字元

\b詞邊界

\b⾮詞邊界

\a字串開始

\z字串的結尾

-表示域,0-9就表示0 到9所有數字字元

元字元含義{}

表示重複前乙個原子的次數

表示重複前乙個原子的m次

表示重複前乙個原子最少m次,最多n次

表示重複前⼀個原⼦的最少m次

()改變優先順序,取⼦元素

*重複0次或多次

+⾄少出現1次

?出現0次或1次

*?或+?

取消貪婪

x|y表示匹配x或者y

修飾符含義re.s

使.匹配所有字元

re.l

本地化識別

re.u

根據unicode字符集解析字元,會影響\b、\b、\w、\w

re.i

不區分⼤⼩寫

re.m

多行匹配

注意:

原型:re.match(pattern,string,flags=0)

功能:從字串起始位置匹配⼀個模式,如果不是從起始位置匹配則返回none

引數:patter 模式

string 要匹配的字串

flag 模式修正符

返回值: 匹配成功返回⼀個match object,失敗返回none

)# abcabcabc 匹配整個表示式

print

(ret.group(1)

)# abc 第⼀次匹配到的結果

print

(ret.span())

# (3, 12) 開始和結束位置

print

(ret.groups())

# 表示當正規表示式⾥有多個分組時,多個分組的匹配

結果

原型:re.search(pattern, string, flags=0)

功能:順序掃瞄字串,找到第⼀個匹配項結束

引數:patter 模式

string 要匹配的字串

flag 模式修正符

返回值:匹配成功,返回match object,否則返回none

print

(re.search(r'll'

,'hello'))

print

(re.search(r'll'

,'hello'

,re.i)

)

原型:findall(pattern, string, flags=0)

功能:掃瞄整個字串,並返回結果列表

引數:patter: 匹配的正規表示式

string: 要匹配的字串

flags:模式修正符

返回值:如果匹配成功返回⼀個列表,包含了所有匹配項,失敗返回空列表

print

(re.findall(r'oo'

,'kksdkoosdflsdfooksdfsdooppppweoo'

,re.i)

)#['oo', 'oo', 'oo', 'oo']

原型:split(pattern, string,maxsplit=0,

, flags=0)

功能:⽤模式做分隔符,將字串分隔,返回分隔列表,如果模式加上括號,則分

隔符會被保留

引數:patter: 匹配的正規表示式

string: 要匹配的字串

maxsplit 匹配次數,0不限制次數

flags:模式修正符

print

(re.split(r'\d|,|;'

,'w1w2w3w,w;w'))

#['w', 'w', 'w', 'w',

'w',

'w']

sub(pattern, repl, string, count=0)

subn(pattern, repl, string, count=0)

功能:在⽬標字串中以正規表示式的規則匹配字串,再把他們替換成指定的字

符串。可以指定替換的次數,

如果 不指定,替換所有的匹配字串

引數: pattern: 正規表示式(規則)

repl: 指定的⽤來替換的字串

string: ⽬標字串

count: 最多替換次數

區別:前者返回⼀個替換後的字串,後者返回⼀個元組,第⼀個元素替換後的字

符串, 第⼆個元素表示被替換的次數

print

(re.sub(r"(good)"

,"nice"

,"cheng is good man"))

print

(re.subn(r"(good)"

,"nice"

,"cheng is good man"

))

m = re.match(r"(\d)-(\d)"

,"010-53247654"

)#使⽤序號獲取對應組的資訊,group(0)⼀直代表的原始字串

print

(m.group(0)

)print

(m.group(1)

)print

(m.group(2)

)#檢視匹配的各組的情況

print

(m.groups(

))

原型:re.

compile

(pattern, flags=0)

功能:將正規表示式模式編譯成正規表示式物件,其 match(

) 和 search(

) ⽅法可⽤於匹配

引數:pattern 模式

flags 模式修正符

re_telephon = re.

compile

(r"^1(([3578]\d)|(47))\d$"

)#編譯,返回

print

(re_telephon.match(

"13600000000"))

#

30天Python基礎(linux作業系統)

一 linux系統優點 免費 開源 速度快,資源少 穩定 安全,不宕機 多 戶 多工 持多種平台 系統安裝 虛擬化和虛擬機器 虛擬機器 virtual machine 指通過軟體模擬的具有完整硬體系統功能的 運 在 個完全隔離環境中的完整計算機系統 虛擬化關機 sudo shutdown h 18 ...

python正則 python正則表達

正規表示式是一種用來匹配字串的強有力的 設計思想是用一種描述性的語言來給字串定義乙個規則,凡是符合規則的字串,就認為它 匹配 否則就不匹配。一 可以通過幾類符號設計限定規則,常用的思想如下 匹配除換行符以外的任意字元 w匹配字母 數字 下劃線或漢字 w匹配字母 數字 下劃線或漢字以外的字元 s匹配任...

Python 正規表示式(基礎)

正規表示式 regular expression 是乙個特殊的字串行,描述了一種字串匹配的模式可以用來檢查乙個串是否含有某種子串 將匹配的子串替換或者從某個串中取出符合某個條件的子串,或者是在指定的文章中,抓取特定的字串等。python處理正規表示式的模組是re模組,它是python語言擁有全部的正...