資源描述:
《python 正則表達(dá)式》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、2.正則表達(dá)式正則表達(dá)式是對(duì)字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個(gè)“規(guī)則字符串”,這個(gè)“規(guī)則字符串”用來(lái)表達(dá)對(duì)字符串的一種過(guò)濾邏輯。正則表達(dá)式通常被用來(lái)檢索、替換那些符合某個(gè)模式(規(guī)則)的文本。.匹配除了換行符外的所有字符^每一行字符串的開(kāi)始$匹配每一行字符串的結(jié)尾轉(zhuǎn)義字符,使后一個(gè)字符轉(zhuǎn)變?cè)瓉?lái)的意思(ab)進(jìn)行分組[..]匹配字符組里出現(xiàn)的任意一個(gè)字符[^..]不匹配字符組里出現(xiàn)的任意一個(gè)字符[..A-Z..]匹配從A到Z的任意一個(gè)字符[A,H,T,W]包含A或H或T或W字母{..}匹
2、配前面出現(xiàn)的正則表達(dá)式{n,m}匹配長(zhǎng)度?n到m ?匹配前面的正則表達(dá)式1次或0次 *匹配前面的正則表達(dá)式1次或多次 +匹配前面的正則表達(dá)式1次或0次 d等價(jià)于[0-9]D等價(jià)于[^0-9],即非數(shù)字 w等價(jià)于[A-Za-z_0-9]匹配任何數(shù)字字母字符s匹配任何非空白集b匹配單詞邊界c逐一匹配特殊字符ca(z)匹配字符串的起始(結(jié)束)正則表達(dá)式涉及了貪婪模式和非貪婪模式如字符串"abcd"那么"a.*"匹配的是"abcd""a.*?"匹配的是"a""a.*?d"匹配的是"abcd""a.*d"匹配的是"abcd
3、"正則表達(dá)式的Re模塊常用的功能函數(shù)包括:compile、search、match、split、findall(finditer)、sub(subn)re.compile(pattern[,flags])作用:把正則表達(dá)式語(yǔ)法轉(zhuǎn)化成正則表達(dá)式對(duì)象,編譯正則表達(dá)式Pattern:Pattern對(duì)象是一個(gè)編譯好的正則表達(dá)式,通過(guò)Pattern提供的一系列方法可以對(duì)文本進(jìn)行匹配查找。Pattern不能直接實(shí)例化,必須使用re.compile()進(jìn)行構(gòu)造。flags編譯時(shí)用的匹配模式定義包括:re.I:(ignorecase)忽略大小寫(xiě)re.L:
4、(locale)表示特殊字符集w,W,b,B,s,S依賴(lài)于當(dāng)前環(huán)境re.M:(multiline)多行模式re.S:(dotall)'.'并且包括換行符在內(nèi)的任意字符(注意:'.'不包括換行符)re.U:(unicode)表示特殊字符集w,W,b,B,d,D,s,S依賴(lài)于Unicode字符屬性數(shù)據(jù)庫(kù)re.X:(verbose)?在RE字符串中的空白符被忽略,除非該空白符在字符類(lèi)中或在反斜杠之後;這可以讓你更清晰地組織和縮進(jìn)RE。它也可以允許你將注釋寫(xiě)入RE,這些注釋會(huì)被引擎忽略;注釋用"#"號(hào)來(lái)標(biāo)識(shí),不過(guò)該符號(hào)
5、不能在字符串或反斜杠之後。re.search(pattern,string[,flags])re.match(pattern,string[,flags])作用:在字符串中查找匹配正則表達(dá)式模式的位置match()函數(shù)只在字符串的開(kāi)始位置嘗試匹配正則表達(dá)式,也就是只報(bào)告從位置0開(kāi)始的匹配情況,而search()函數(shù)是掃描整個(gè)字符串來(lái)查找匹配。re.split(pattern,string[,maxsplit=0,flags=0])可以將字符串匹配正則表達(dá)式的部分割開(kāi)并返回一個(gè)列表re.findall(pattern,string[,fla
6、gs])在字符串中找到正則表達(dá)式所匹配的所有子串,并組成一個(gè)列表返回re.finditer(pattern,string[,flags])和findall類(lèi)似,在字符串中找到正則表達(dá)式所匹配的所有子串,并組成一個(gè)迭代器返回。re.sub(pattern,repl,string[,count,flags])在字符串string中找到匹配正則表達(dá)式pattern的所有子串,用另一個(gè)字符串repl進(jìn)行替換。如果沒(méi)有找到匹配pattern的串,則返回未被修改的string。Repl既可以是字符串也可以是一個(gè)函數(shù)。re.subn(pattern,r
7、epl,string[,count,flags])該函數(shù)的功能和sub()相同,但它還返回新的字符串以及替換的次數(shù)re.group(num=0)返回全部匹配對(duì)象,小心一個(gè)括號(hào)多次匹配Re.groups()返回去一個(gè)包含全部匹配子組的元組,不成功返回一個(gè)空元組