您好,登錄后才能下訂單哦!
本篇內容主要講解“python的re模塊分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“python的re模塊分析”吧!
參數說明:
re.sub(pattern, repl, string, count=0, flags=0)
patten:正則表達式。
repl:要替換的字符串。
string:要匹配的字符串。
count:替換參數,默認值0表示不限制次數,可傳參指定替換次數。
flags:標志位,用于控制正則表達式的匹配方式,如:是否區分大小寫,多行匹配等等。
返回值:
返回值是替換后的新字符串。
用途:
根據正則表達式對字符串的內容按repl參數進行替換。
案例:
print(re.sub( '\d+','——', '123abc567def98ghi'))print(re.sub( '\d+','——', '123abc567def98ghi',1))out:——abc——def——ghi ——abc567def98ghi
參數說明:
參數和sub完全一致。
返回值:
返回值是一個元組,元素0是替換后的新字符串,元素1是成功替換的次數。
用途:
根據正則表達式對字符串的內容按repl參數進行替換。
案例:
print(re.subn( '\d+','——', '123abc567def98ghi'))str1, times = re.subn( 'ABC', '——','123abc567def98ghi')print(str1, times)out:('——abc——def——ghi', 3)123abc567def98ghi 0
參數說明:
參數和findall完全一致。
返回值
從字符串開頭開始匹配,一直匹配到結尾都匹配不到結果則返回None;匹配到結果則返回迭代器,迭代器的內容是re.Match對象(關于re.Match對象詳細說明請查看re.search的返回值部分)。
用途:
用迭代器的方式從字符串中按正則表達式查找或提取內容,優點是節省內存,缺點是取值不直觀。
案例:
result = re.finditer('\d+','123abc567def98')for i in result:print(i.group())out:12356798
參數說明:
re.compile(pattern, flags=0)
patten:正則表達式。
flags:標志位,用于控制正則表達式的匹配方式,如:是否區分大小寫,多行匹配等等。
返回值
返回的是正則表達式類(class ‘re.Pattern’)。
用途:
對正則表達式進行預編譯,在某個正則表達式需要多次使用時建議進行預編譯,可提高運行效率。
案例:
ret = re.compile('\d+')res1 = ret.search('123abc567def98')res2 = ret.findall('123abc567def98')print(res1)print(res1.group())print(res2)out:<re.Match object; span=(0, 3), match='123'>123['123', '567', '98']
參數說明:
參數和match完全一致。
返回值:
返回值和match完全一致。區別在于match是開頭匹配,開頭匹配成功就返回re.Match對象;fullmatch是完全匹配,從頭到尾完全匹配才返回re.Match,匹配失敗則返回None。
用途:
校驗用戶輸入的內容是否完全符合正則表達式。
案例:
result1 = re.fullmatch('\d+','123abc567def98')print(result1)if result1:print(result1.group())result2 = re.fullmatch('\d+','12345678')print(result2)print(result2.group())out:None<re.Match object; span=(0, 8), match='12345678'>12345678
escape函數可用來取消轉義符,但不建議學習和使用它,請學好正則表達式,忘了escape吧。
請留心看re模塊的函數,幾乎都有flags參數。flags參數可以修改正則表達式的一些運行方式。多個標志可以通過使用按位運算符 | 來同時生效。如 re.I | re.M 。flags有兩種書寫形式,簡寫或全寫均可。
I或IGNORECASE
忽略字母大小寫。
L或LOCALE
影響 \w, \W, \b, 和 \B,具體取決于本地化設置。
M或MULTILINE
使用本標志后,‘^’和‘$’匹配行首和行尾時,會增加換行符之前和之后的位置。
S或DOTALL
使 “.” 特殊字符完全匹配任何字符,包括換行符(沒有這個標志, “.” 匹配除換行符外的任何字符)。
X或VERBOSE
當該標志被指定時,在正則表達式中的空白符被忽略,除非該空白符在字符組中或在反斜杠之后。它還可以讓你在正則表達式中用#寫注釋。
案例:
result = re.findall('[a-z]+','123abc567def98HIJ')print(result)result = re.findall('[a-z]+','123abc567def98HIJ',re.I)print(result)out:['abc', 'def']['abc', 'def', 'HIJ']
到此,相信大家對“python的re模塊分析”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。