python re module

正則表達式並不是Python的一部分。正則表達式是用於處理字符串的強大工具,擁有自己獨特的語法以及一個獨立的處理引擎。


compile(pattern, flags=0)
編譯一個正則表達式字符串,返回一個正則表達式對象.
第二個參數flag是匹配模式,取值可以使用按位或運算符'|'表示同時生效,比如re.I | re.M。
I(IGNORECASE): 忽略大小寫(括號內是完整寫法)。
M(MULTILINE): 多行模式,改變'^'和'$'的行爲。
p = re.compile('hello world',re.I)
Pattern對象:
Pattern對象是一個編譯好的正則表達式,通過Pattern提供的一系列方法可以對文本進行匹配查找。
Pattern不能直接實例化,必須使用re.compile()進行構造。
Pattern提供了幾個可讀屬性用於獲取表達式的相關信息:
pattern #編譯時用的表達式字符串。
flags   #編譯時用的匹配模式。數字形式。
groups  #表達式中分組的數量。
groupindex #以表達式中有別名的組的別名爲鍵,以該組對應的編號爲值的字典,沒有別名的組不包含在內。 
match(pattern, string, flags=0)
match嘗試從字符串的開始匹配一個模式(只匹配一個字符串的開始).
m = p.match('Hello World, Welcome to BeiJing')
print m.group() 

search(pattern, string, flags=0)
search會在整個字符串中查找匹配,直到找到第一個匹配返回一個Match對象,否則返回None。
m = p.search('Hello World, Welcome to BeiJing')
print m.group() 

re.match與re.search的區別:
re.match只匹配字符串的開始,如果字符串開始不符合正則表達式,則匹配失敗,函數返回None,
而re.search匹配整個字符串,直到找到一個匹配。

finditer(pattern, string, flags=0)
finditer將匹配到的對象以iterator返回,每一次匹配都會返回一個Match對象。

Match對象的屬性和方法:
print m.string  #匹配時使用的文本。 
print m.re      #匹配時使用的Pattern對象。 
group([group1,...]) #不填寫參數時,返回group(0),編號0代表整個匹配的子串。
start([group]) #group默認值爲0,返回指定的組的子串在string中的起始索引(子串第一個字符的索引)。 
end([group])   #group默認值爲0,返回指定的組的子串在string中的結束索引(子串最後一個字符的索引+1)。
findall(pattern, string, flags=0)
findall匹配字符串中所有的匹配,並將匹配到的字符串以列表的形式返回。
p.findall('Hello World, Welcome to BeiJing, hello world, Hello world')
返回 
['Hello World', 'hello world', 'Hello world']
split(pattern, string, maxsplit=0, flags=0)
用匹配分割一個字符串,並將結果以列表形式返回。
p = re.compile('hello')
p.split('WelcomehellotohelloBeiJing')
返回
['Welcome', 'to', 'BeiJing']
sub(pattern, repl, string, count=0, flags=0)
sub用於替換字符串中的匹配項,返回替換後的字符串。
count是替換的個數,默認爲0代表全部替換。
p = re.compile('hello')
p.sub('hi','hello@hello@hello')
subn(pattern, repl, string, count=0, flags=0)
subn用於替換字符串中的匹配項,返回一個tuple (new_string, number)
new_string是替換後的字符串
number爲被替換的個數
escape(string)
對字符串中的非字母數字進行轉義
purge()
清空緩存中的正則表達式
template(pattern, flags=0)
編譯一個模板表達式,返回一個正則表達式對象

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章