re 模組使python 語言擁有全部的正規表示式功能
complile函式根據乙個模式字串和可選的標誌函式生成乙個正規表示式物件。該物件擁有一系列方法用於正規表示式匹配和替換。
1.match 方法
rematch 嘗試從字串的起始位置匹配乙個模式,如果不是起始位置匹配成的話,match() 返回none
匹配成果返回乙個匹配的物件。
語法:
match(string[, pos[, endpos]])
string:匹配使用的文字,
pos: 文字中正規表示式開始搜尋的索引。及開始搜尋string的下標
endpos: 文字中正規表示式結束搜尋的索引。
如果不指定pos,預設是從開頭開始匹配,如果匹配不到,直接返回none
匹配物件方法描述group(num=0)匹配的整個表示式的字串,group() 可以一次輸入多個組號,在這種情況下它將返回乙個包含那些組所對應值的元組。groups()返回乙個包含所有小組字串的元組,從 1 到 所含的小組號。
使用group()、groups()匹配物件函式來獲取匹配表示式.
importreprint(re.match('www'
,'www.runoob.com').span())
print(re.match('com'
,'www.runoob.com'))
(0, 3)none
result = pattern.match(r'aahello world hello ling')print(result)
result2 = pattern.match(r'hello world hello ling')
print(result2.groups())
<_sre.sre_match object at 0x00000000025450b8>解釋:如果不指定pos的話,預設是從字串開始位置匹配,匹配不到就返回none,以上所有的pattern都是乙個match物件,('hello world ', 'hello ling')
2. search 方法
search(string[, pos[, endpos]])
這個方法用於查詢字串中可以匹配成功的子串。從string的pos下標處起嘗試匹配pattern,如果pattern結束時仍可匹配,則返回乙個match物件;若無法匹配,則將pos加1後重新嘗試匹配;直到pos=endpos時仍無法匹配則返回none。
importrepattern = re.compile(r'(hello w.*)(hello l.*)')
result1 = pattern.search(r'aahello world hello ling')
print(result1.groups())
('hello world ', 'hello ling')
match ()方法預設從開始匹配,若匹配不到直接返回none。
search()方法 從開始位置匹配,若匹配不到,下標加一,直到最後。
3. split 方法
split(string[, maxsplit])按照能夠匹配的子串將string分割後返回列表。maxsplit用於指定最大分割次數,不指定將全部分割
importrep = re.compile(r'\d+')
print(p.split('one1two2three3four4'))
['one', 'two', 'three', 'four', '']
解釋:直接把p的正則當成是分隔符,然後把最後的字串用p進行分割,然後返回回去
4.findall 方法
findall(string[, pos[, endpos]])
搜尋string,以列表形式返回全部能匹配的子串.
importrep = re.compile(r'\d+')
print(p.findall('one1two2three3four4'))
['1', '2', '3', '4']
結果:findall是把匹配到的字串最後一列表的形式返回回去
5 .finditer 方法
finditer(string[, pos[, endpos]])搜尋string,返回乙個順序訪問每乙個匹配結果(match物件)的迭代器
importrep = re.compile(r'\d+')
print(type(p.finditer('one1two2three3four4')))
forminp.finditer('one1two2three3four4'):
print(type(m))
print(m.group())
4解釋:
p.finditer('one1two2three3four4')是乙個迭代器,而返回的每個m都是match物件
6. match匹配物件
match物件是一次匹配的結果,包含了很多關於此次匹配的資訊,可以使用match提供的可讀屬性或方法來獲取這些資訊。上面的過程中多次使用了match物件,呼叫了他的group()和groups()等方法。
importreprog = re.compile(r'(?pabc)(.*)(?p=tagname)')
result1 = prog.match('abclfjlad234sjldabc')
print(result1)
print(result1.groups())
printresult1.group('tagname')
print(result1.group(2))
print(result1.groupdict())
<_sre.sre_match object at 0x0000000002585140>('abc', 'lfjlad234sjld')
abclfjlad234sjld
解釋:1,我們可以看到result1已經由字串轉換成了乙個正則物件。
2,resule.groups()可以檢視出來所有匹配到的資料,每個()是乙個元素,最終返回乙個tuple
3,group()既可以通過下標(從1開始)的方式訪問,也可以通過分組名進行訪問。
4,groupdict只能顯示有分組名的資料
group([group1, …]):
獲得乙個或多個分組截獲的字串;指定多個引數時將以元組形式返回。group1可以使用編號也可以使用別名;編號0代表整個匹配的子串;不填寫引數時,返回group(0);沒有截獲字串的組返回none;截獲了多次的組返回最後一次截獲的子串。
groups([default]):
以元組形式返回全部分組截獲的字串。相當於呼叫group(1,2,…last)。default表示沒有截獲字串的組以這個值替代,預設為none。
groupdict([default]):
返回以有別名的組的別名為鍵、以該組截獲的子串為值的字典,沒有別名的組不包含在內。default含義同上。
python物件方法
1 物件的方法 這個物件型別在標準庫裡面就有的方法 2 物件的方法呼叫 物件.方法 3 字串 str 1 count 計算字串中包含的多少個指定的子字串 str1 abcaaa str1.count a 結果 4 2 endswith 檢查字串是否以指定的字串結尾 返回值 bool 3 starts...
python 物件,屬性的方法
物件的建立和銷毀 new cls args,kwargs 建立新例項時呼叫的類方法 這個在 init 的前面呼叫 init self args,kwargs 初始化新實列時呼叫 del self 銷毀物件時呼叫 如下方法用於建立物件的各種字串表示 format self,format spec 建立...
python的id方法 python物件ID
如果您只想建立乙個本地唯一的值,那麼可以使用乙個非常簡單的自動遞增方法。data current id 1 for record in data record id current id current id 1 print record 要新增新值,如果不這樣初始化,可以使用 max d.get ...