Python 正規表示式

2021-09-28 22:27:47 字數 2636 閱讀 8399

match     從開頭匹配

search 只匹配一次

findall 查詢所有

【.】任意字元

【】範圍

【|】或者

【()】一組

定義正則驗證次數:

【*】用於將前面的模式匹配0次或多次(貪婪模式,即盡可能多的匹配)

>=

0【+】用於將前面的模式匹配1次或多次(貪婪模式)

>=

1【?】用於將前面的模式匹配0次或1次(加入?為非貪婪模式)0,

1用於驗證將前面的模式匹配m次

用於驗證將前面的模式匹配大於等於m次並且小於等於n次

即上面三種特殊字元的非貪婪模式(盡可能少的匹配)

用於將前面的模式匹配m次到n次(貪婪模式),即最小匹配m次,最大匹配n次

? 即上面的非貪婪版本

\a: 表示從字串的開始處匹配

\z: 表示從字串的結束處匹配,如果存在換行,只匹配到換行前的結束字串

\b: 匹配乙個單詞邊界,也就是指單詞和空間間的位置。例如,'py\b'可以匹配'python'中的'py',但不能匹配'openpyxl'中的'py'

\b: 匹配非單詞邊界。'py\b'可以匹配'openpyxl'中的'py'

,但不匹配'python'中的'py'

\d: 匹配任意數字,等價於[0-

9]\d: 匹配任意非數字字元,等價於[

^\d]

\s: 匹配任意空白字元,等價於[\t\n\r\f]

\s: 匹配任意非空白字元,等價於[

^\s]

\w: 匹配任意字母數字及下劃線,等價於[a-za-z0-9]

\w: 匹配任意非字母數字及下劃線,等價於[

^\w]

\\: 匹配原義的反斜槓\

$: 從頭匹配到尾

import re

msg =

'abcd7vjkfd8hdf00'

result = re.search(

'[a-z][0-9][a-z]'

, msg)

print

(result.group())

# 通過正規表示式查詢a7a, a88a, a7878a

msg =

'a7aopa88akjgka7878a'

result = re.findall(

'[a-z][0-9]+[a-z]'

, msg)

print

(result)

'''msg = '14195398217'

result = re.match('^[1-9][0-9]$', msg)

print(result)

# 驗證輸入的郵箱

email = '[email protected]'

result = re.match(r'\w@(163|126|qq)\.(com|cn)$',email)

print(result)

'''(word|hello|doc)與[abc]區別:

前者表示乙個單詞

後者表示乙個字母

'''

phone =

'13901031816'

result = re.match(r'1\d[0-35-689]$'

, phone)

print

(result)

phone =

'021-12346578'

result = re.match(r'(\d|\d)-(\d)$'

, phone)

print

(result)

# (\d|\d)表示第一組,區號有3位或4位

print

(result.group(1)

)# 提取第一組資料 結果為 021 輸入2為第2組

msg =

'abc'

msg1 =''

result = re.match(r'<([0-9a-za-z]+)><([0-9a-za-z]+)>(.+)$'

,msg)

# 表示引用第2組或第1組

# 第乙個值可以替換後面的值

result = re.sub(

'\d+'

,'92'

,'lucy:88,tom:76'

)print

(result)

# 在字串中搜尋,遇到:或,進行分割,將分割的內容儲存到列表中

result = re.split(r'[,:]'

,'lucy:88,tom:76'

)print

(result)

#['lucy', '88', 'tom', '76']

# ?p起名

msg =''

result = re.match(r'<(?p\w+)><(?p\w+)>(.+)'

, msg)

print

(result)

# (\w+)匹配的內容,加號為匹配多次

msg =

'abc124def'

result = re.match(r'abc(\d+)'

,msg)

print

(result)

python正規表示式元字元 正規表示式

字元 描述將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...

Python 正規表示式

1.在python中,所有和正規表示式相關的功能都包含在re模組中。2.字元 表示 字串的末尾 如 road 則表示 只有當 road 出現在乙個字串的尾部時才會匹配。3.字元 表示 字元中的開始 如 road 則表示 只有當 road 出現在乙個字串的頭部時才會匹配。4.利用re.sub函式對字串...

Python正規表示式

學習python自然而然就不得不面對正規表示式這個難題。當初在沒有學習python之前,自己也曾經嘗試著學習過正規表示式,但是那時候感覺很麻煩,很難懂,結果就是不了了之。但是現在學習python我用的書是 python基礎教程 第二版 這本書中對re模組的講解很簡單易懂,內容不多但起碼把人領進門了,...