正規表示式 re模組

2021-09-26 04:10:01 字數 2155 閱讀 2248

re是python中的正規表示式模組,正則也是每個人程式設計之路上必備的基礎技能。這部落格希望即便從來沒接觸過的人看了也會使用正規表示式字元

含義.匹配除了換行符外的任何字元。(可以用re.dotall來設定匹配任何字元,包括換行符)

丨a丨b ,表示正規表示式匹配a或者b

^匹配輸入字串開始的位置,如果設定了re.multiline標誌,也可以匹配換行符後的位置

$匹配輸入字串結束的位置,如果設定了re.multiline標誌,也可以匹配換行符前的位置

|將乙個普通字元變成特殊字元

*匹配前面的子表示式0次或者多次

+匹配前面的子表示式1次或者多次

?匹配前面的子表示式1次或者0次

匹配所包含的任意乙個字元

\a匹配輸入字串的開始位置

\z匹配輸入字串的結束位置

\b匹配乙個單詞邊界

\b匹配乙個非單詞邊界,正好與\b相反

\d匹配數字[0-9]

\d與\d相反匹配所有非[0-9]的數字

\s或者\s

前者匹配空白字元,後者匹配非空白字元

\w或者\w

前者匹配單詞字元與數字,下劃線等價於[a-za-z0-9],後者與其相反

從字串中匹配出相應的字串行,返回值是list,元素是匹配到的每個字串行。

import re

#從乙個字串中匹配出所有的數字

str = 'aaqtas123nvj654yyyajkv'

result1 = re.findall('\d+',str)

print(result1)

輸出:['123', '654']

findall()還有第三個引數可以使用,並且這第三個引數使用「|」分開使其多個一起生效。

str2 = 'aatgjyo123liaa'

result2 = re.findall('aa',str2)

print(result2)

輸出:

str2 = 'aatgjyo123liaa'

result2 = re.findall('aa',str2,re.i)

print(result2)

輸出:['aa', 'aa']

從上面的例子中我們可以看到當沒加re.i的時候因為str中的aa是大寫的,但是匹配規則是小寫的aa,從而導致無法匹配成功,但是我們把標誌位re.i加上就匹配出來了,說明該標誌位可以無視大小寫匹配

re中的標誌位還有很多哦,這裡直接列個表好了。

標誌位含義

re.i

匹配時候無視大小寫

re.s

使『.』可以匹配出包括換行符在內的內容

re.m

可以進行多行匹配,就是前面特殊字元中第三四個裡面說的re.multiline

re.l

使預定字元類 \w \w \b \b \s \s 取決於當前區域設定

re.u

使預定字元類 \w \w \b \b \s \s \d \d 取決於unicode定義的字元屬性

re.u

詳細模式。這個模式下正規表示式可以是多行,忽略空白字元,並可以加入注釋。

str3 = 'qwd\nad'

result3 = re.findall('wd.',str3)

print(result3)

輸出:

str3 = 'qwd\nad'

result3 = re.findall('wd.',str3,re.i)

print(result3)

輸出:

str3 = 'qwd\nad'

result3 = re.findall('wd.',str3,re.i|re.s)

print(result3)

輸出:['wd\n']

從上面的例子我們可以看到,第二個我加上了無視大小寫也輸出了空,是因為後面\n被視為換行符,所以』.'沒有匹配到東西,無法輸出,加上之後無視了大小寫並且將\n輸出了。

re 正規表示式模組

import re 預定義字符集 d 數字 0 9 d 非數字 d s 空白字元 空格 t r n f v s 非空白字元 s w 單詞字元 a za z0 9 w 非單詞字元 w 匹配數量 匹配除換行符以外的任何單個字元 匹配前乙個字元0或無限次 盡可能多的匹配 盡可能少的進行匹配前邊的正規表示式...

正規表示式re模組

正規表示式re模組 編譯正規表示式模式,返回乙個物件的模式。可以把那些常用的正規表示式編譯成正規表示式物件,這樣可以提高一點效率。1 compile 格式 re.compile pattern,flags 0 pattern 編譯時用的表示式字串。flags 編譯標誌位,用於修改正規表示式的匹配方式...

re模組正規表示式

正規表示式 1 舉例 re校驗 import re while true phone number input 請輸入手機號碼 strip 需求 11位 開頭13 14 15 19 引數1 正規表示式 引數2 需要過濾的字串 代表 開頭 代表 結束 代表 或 13 14 可以獲取乙個值,判斷是否是1...