python re模組正規表示式中常用的字元有兩類:普通字元和11個元字元,元字元表示特定的功能,比如下面的(),被括起來的表示式將作為分組,從表示式左邊開始每遇到乙個分組的左括號「(」,編號+1。分組表示式作為乙個整體,可以後接數量詞。表示式中的 | 僅在該組中有效。那麼我們想匹配表示式中的 () 字元怎麼辦呢?通過字首反斜槓 \ 將特殊字元(元字元)轉義成普通字元。 注:在python的string前面加上『r』,即告訴編譯器不要轉義 \, 例如,\n 在raw string中,是兩個字元\和n,而不會轉義為換行符,但加上『r』後\n就直接匹配換行符了。
re.match 嘗試從字串的起始位置匹配乙個模式,匹配成功re.match方法返回乙個匹配的物件,否則返回none。如果不是起始位置匹配成功的話,match()也返回none。
函式語法:re.match(pattern, string, flags=0)
函式引數說明:
引數說明
pattern
匹配的正規表示式
string
要匹配的字串
flags
標誌位,用於控制正規表示式的匹配方式,如:是否區分大小寫,多行匹配等等。
我們可以使用group(num) 或 groups() 匹配物件函式來獲取匹配表示式。
import re
string =
'ab+ba-a+b'
print
(re.match(
'[a-z]*\+[a-z]*'
, string)
)
可以看出返回的並不是乙個字串,而是乙個返回乙個 matchobject,你可以查詢 matchobject 關於匹配字串的相關資訊了。matchobject 例項常見的方法有:group() 返回被 re 匹配的字串,start() 返回匹配開始的位置,end() 返回匹配結束的位置,span() 返回乙個元組包含匹配 (開始,結束) 的位置。
# group(0)是返回整個匹配項
import re
ans = re.match(r"(..)+"
,"a1b2c3"
)print
(ans.group(0)
)# a1b2c3
# group(num)返回捕獲組的內容,預設只有乙個捕獲組,並且每次捕獲都存在1號捕獲組。
import re
ans = re.match(r"(..)+"
,"a1b2c3"
)print
(ans.group(1)
)# c3
如何設定多個捕獲組呢?使用多個括號()!
注意:(…)+只有1個group(1)的捕獲組,每次捕獲都存在1號捕獲組。
# groups()返回所有捕獲組
import re
ans = re.match(r"(..)..(..)"
,"a1b2c3"
)print
(ans.groups())
# ('a1', 'c3')
print
(ans.group(2)
)# c3
注意:re.match只匹配字串的開始,如果字串開始不符合正規表示式,則匹配失敗,函式返回none;而re.search匹配整個字串,直到找到乙個匹配。
在字串中找到正規表示式所匹配的所有子串,並返回乙個列表,如果沒有找到匹配的,則返回空列表。
注意: match 和 search 是匹配一次 findall 匹配所有,另外,re.findall返回的是乙個列表。
語法格式為:re.findall(pattern, string, flags=0)
函式引數說明:
引數說明
pattern
匹配的正規表示式
string
待匹配的字串
import re
ans = re.
compile
(r'\d+'
)print
(ans.findall(
'o1n2m3k4'))
# ['1', '2', '3', '4']
ans2 = re.findall(r'\d+'
,'o1n2m3k4'
)print
(ans2)
# ['1', '2', '3', '4']
re.finditer 和 findall 類似,在字串中找到正規表示式所匹配的所有子串,並把它們作為乙個迭代器返回。
語法:re.finditer(pattern, string, flags=0)
函式引數說明:
引數描述
pattern
匹配的正規表示式
string
要匹配的字串
flags
標誌位,用於控制正規表示式的匹配方式,如:是否區分大小寫,多行匹配等等
python中正規表示式
python中正規表示式語法與linux中的相容 檢視正規表示式 python提供re模組,包含所有正規表示式的功能。由於python的字串本身也用 轉義,所以要特別注意 s abc 001 python的字串 對應的正規表示式字串變成 abc 001 建議使用python的r字首,就不用考慮轉義的...
Python 中 正規表示式
一 最近要對字串執行很多操作,所以學了正規表示式 不得不說正規表示式對字串的操作還是很給力的 runoob上面的教程 python中的正規表示式 正規表示式教程 python中要使用正規表示式,首先要匯入re模組 import re 二 常用函式 或者說方法 re.match 作用 嘗試從字串的起始...
python中正規表示式使用
1 正規表示式的常用操作符 操作符說明例項 表示任何單個字元 字符集,對單個字元給出取值範圍 abc 表示a b c,a z 表示a到z單個字元 非字符集,對單個字元給出排除範圍 abc 表示非a或b或c的單個字元 前乙個字元0次或無限次擴充套件 abc 表示ab abc abcc abccc等 前...