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模組的講解很簡單易懂,內容不多但起碼把人領進門了,...