Python正規表示式

2022-06-25 19:12:08 字數 2092 閱讀 7387

一般形式

import re

# 在helloworld中匹配hello

# 返回匹配的obj物件

obj = re.match('hello','hello world')

# 獲取匹配結果 group(n)獲取第n+1組所匹配的子串

pro = obj.group()

print(pro)

匹配單個字元

# . 任意單個字元

# 匹配中的字元

# \d 匹配數字

# \d 匹配非數字

# \s 匹配空白,\t

# \s 匹配非空白

# \w 匹配非特殊字 a-z,a-z,0-9,'_',漢字

# \w 匹配特殊字元 非a-z,a-z,0-9,'_',漢字

import re

# 任意0-9的數字都會被匹配

obj = re.match('[0-9]','q')

if obj:

pro = obj.group()

print(pro)

else:

print('匹配失敗')

匹配多個字元

# * 匹配前乙個字元0-無限次

# + 匹配前乙個字元1-無限次

# ? 匹配前乙個字元0或1

# 匹配前乙個字元m次

# 匹配前乙個字元m到n次

# 匹配前乙個字元至少m次

import re

# 開頭是h,結尾是p,中間任意多字元

obj = re.match('h.*p','hsidajsoidnaocp')

pro = obj.group()

print(pro)

匹配開頭和結尾

import re

# 匹配開頭和結尾是數字

# obj = re.match('^\d.*\d$','1dasdwqdqwda3')

# pro = obj.group()

# print(pro)

# [^字元] 表示除字元以外的都匹配

# 不含123任何數字的字元匹配

obj = re.match('[^123]+','456')

pro = obj.group()

print(pro)

分組匹配

import re

# a|b 表示出現a或b都可以匹配

for value in fruit:

if obj:

pro = obj.group()

print('i love',pro)

else:

print('i don`t love',value)

import re

# :後非0開頭的5-11位數字

pro0 = obj.group(0)

print(pro0)

pro1 = obj.group(1)

print(pro1)

pro2 = obj.group(2)

print(pro2)

import re

# <>內為非特殊字元且前後一樣,中間任意字元

obj = re.match('<(\w+)>.*','曹操')

pro = obj.group()

print(pro)

import re

# 標籤分組

obj = re.match('<(?p\w+)><(?p\w+)>.*','孫悟空

')pro = obj.group()

print(obj)

匹配含有特性字元的

import re

# \.將.變為普通的. 而不是匹配任意乙個字元

obj = re.match('\w@(163|126|qq)\.com','[email protected]')

pro = obj.group()

print(pro)

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