單元7 字符串與正則表達(dá)式_第1頁
單元7 字符串與正則表達(dá)式_第2頁
單元7 字符串與正則表達(dá)式_第3頁
單元7 字符串與正則表達(dá)式_第4頁
單元7 字符串與正則表達(dá)式_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

單元7字符串與正則表達(dá)式字符串是開發(fā)應(yīng)用中常用的數(shù)據(jù)類型,字符串的處理是實際應(yīng)用中經(jīng)常面對的問題。Python提供了功能強(qiáng)大的字符串模塊。正則表達(dá)式專門用于匹配應(yīng)用中的數(shù)據(jù),能夠簡化字符串的處理程序,Python提供了模塊匹配正則表達(dá)式。7.1字符串Python中的字符串用于表示和存儲文本。7.1.1字符串的表示方法單引號(’…’)雙引號(“…”)三引號(’’’…’’’,”””…”””)7.1.2字符串的特征字符串構(gòu)成包含數(shù)字、中文字符、特殊符號、控制字符等特征有序性:字符串中的字符與字符之間是有序的可重復(fù):字符串中可以包含重復(fù)的字符7.2常見的字符串操作字符串是Python的一種基本類型,字符串的操作包括字符串的合并、截取、反轉(zhuǎn)、查找、格式化等操作。7.2.1字符串的格式化Python提供了2種字符串的格式化功能。1.通過替代符格式化Python將若干值插入帶有“%”標(biāo)記的字符串中,從而可以動態(tài)地輸出字符串。"%s"%str1或"%s%s"%(str1,str2)替代符替代符含義%c格式化字符及其ASCII碼%s格式化字符串%d格式化整型%u格式化無符號整型%o格式化無符號八進(jìn)制數(shù)%x格式化無符號十六進(jìn)制數(shù)%X格式化無符號十六進(jìn)制數(shù)(大寫)%f格式化浮點數(shù)字,可指定小數(shù)點后的精度%e用科學(xué)計數(shù)法格式化浮點數(shù)%E作用同%e,用科學(xué)計數(shù)法格式化浮點數(shù)%g根據(jù)值的大小決定使用%f或%e%G作用同%g,根據(jù)值的大小決定使用%f或%e%p用十六進(jìn)制數(shù)格式化變量的地址2.通過format()函數(shù)格式化使用str.format()"{}".format(str)或"{}{}".format(str1,str2)7.2.2字符串的對齊操作center():居中對齊ljust():左對齊rjust():右對齊使用format()函數(shù)實現(xiàn){:^value}:居中對齊{:<value}:左對齊{:>value}:右對齊7.2.3字符串的轉(zhuǎn)義符使用“\”作為轉(zhuǎn)義字符轉(zhuǎn)義字符含義\n換行\(zhòng)r回車\'單引號\"雙引號\\反斜杠\a發(fā)出系統(tǒng)響鈴聲\b向后退一格\f換頁\t水平制表符\v垂直制表符\o八進(jìn)制數(shù)代表的字符\x十進(jìn)制數(shù)代表的字符\000終止符,\000后的字符串全部忽略使用r或R來取消轉(zhuǎn)義字符使用“+”連接不同的字符串7.2.4字符串的合并與類型有關(guān)“+”兩側(cè)都是字符串類型進(jìn)行連接操作“+”兩側(cè)都是數(shù)字類型進(jìn)行加法運(yùn)算“+”兩側(cè)是不同的類型拋出異常7.2.5字符串的截取被截取的部分稱為“子串”。通過索引獲取子串通過切片獲取子串使用函數(shù)split()來獲取子串7.2.6字符串的比較使用“==”進(jìn)行比較使用“!=”進(jìn)行比較7.2.7字符串的反轉(zhuǎn)字符串反轉(zhuǎn)是指把字符串中最后一個字符移到字符串第一個位置,按照倒序的方式依次前移。反轉(zhuǎn)方法通過索引實現(xiàn)字符串的反轉(zhuǎn)通過range()進(jìn)行循環(huán)7.2.8字符串的查找和替換使用函數(shù)find()實現(xiàn)find(sub,start,end)使用函數(shù)rfind()實現(xiàn)從字符串的尾部開始查找子串7.3正則表達(dá)式在處理字符串的時候,經(jīng)常需要查找符合某些規(guī)則的字符串,這時就需要用到正則表達(dá)式。在Python中,主要使用re模塊進(jìn)行正則表達(dá)式的操作。re模塊提供了Perl風(fēng)格的正則表達(dá)式,使正則表達(dá)式具有更好的可讀性,以及更強(qiáng)的功能。7.3.1正則表達(dá)式的基本元字符一個正則表達(dá)式是由字母、數(shù)字、漢字和具有特定含義的字符(括號、星號、問號等)組成。使用元字符用以匹配字符串的各種可能的情況元字符及含義元字符含義.匹配除換行符以外的任何單個字符,如“r.d”會匹配“red”,“rd”等,但不會匹配“read”。*匹配位于*之前的0個或多個字符,如“r*ed”會匹配“ed”,“rred”,“rrred”,“red”等。+匹配位于+之前的一個或多個字符,如“r+ed”會匹配“rred”,“rrred”,但不會匹配“ed”。|匹配位于|之前或者之后的字符,如“red|blue”會匹配“red”,“blue”^匹配字符串的開始$匹配字符串的結(jié)尾?匹配位于?之前的零個或一個字符,如“r?ed”會匹配“ed”,“red”等,但不會匹配“rrred”。\表示位于\之后的為轉(zhuǎn)義字符[]匹配位于[]中的任何一個字符,如r[ae]d,會匹配“rad”以及“red”等。[^m]匹配除m以外的字符串()將位于()內(nèi)的內(nèi)容當(dāng)作一個整體{}按{}中的次數(shù)進(jìn)行匹配\b匹配單詞的開始或結(jié)束\B匹配不是單詞開始和結(jié)束的位置\d匹配數(shù)字\D匹配非數(shù)字的字符\s匹配空白字符\S匹配不是空白的字符\w匹配字母、數(shù)字、下劃線、漢字\W匹配不是字母、數(shù)字、下劃線、漢字元字符還可以組合起來使用組合元字符含義.*可以匹配任意個字符,如“r.*d”會匹配“rd”、“red”、“read”等。.+可以匹配任意的一個或者多個字符,如“r.+d”會匹配“red”、“read”,但不會匹配“rd”。.?可以匹配任意的零個或一個字符,如“r.?d”會匹配“rd”、“red”,但不會匹配“read”7.3.2常用正則表達(dá)式分析使用正則表達(dá)式可以簡化程序設(shè)計??梢詤^(qū)分聯(lián)通和移動號碼7.4支持正則表達(dá)式的re模塊re模塊提供了一些根據(jù)正則表達(dá)式進(jìn)行查找、替換、分隔字符串的函數(shù),這些函數(shù)使用一個正則表達(dá)式作為第一個參數(shù)。re模塊的常用函數(shù)及含義函數(shù)含義findall(pattern,string,flags=0)根據(jù)pattern在string中匹配字符串。如果匹配成功,返回包含匹配結(jié)果的列表;否則,返回空列表。當(dāng)pattern中有分組時,返回包含多個元組的列表,每個元組對應(yīng)1個分組。Flags表示規(guī)則選項,規(guī)則選項用于輔助匹配。sub(pattern,repl,string,count=0)根據(jù)指定的正則表達(dá)式,替換源字符串中的子串。pattern是一個正則表達(dá)式,repl是用于替換的字符串,string是源字符串。如果count等于0,則返回string中匹配的所有結(jié)果;如果count大于0,則返回前count個匹配結(jié)果subn(pattern,repl,string,count=0)作用和sub()相同,返回一個二元的元組。第1個元素是替換結(jié)果,第2個元素是替換的次數(shù)match(pattern,string,flags=0)根據(jù)pattern從string的頭部開始匹配字符串,只返回第1次匹配成功的對象;否則,返回Nonesearch(pattern,string,flags=0)根據(jù)pattern在string中匹配字符串,只返回第1次匹配成功的對象。如果匹配失敗,返回Nonecompile(pattern,flags=0)編譯正則表達(dá)式pattern,返回1個Pattern對象split(pattern,string,maxsplit=0)根據(jù)pattern分隔string,maxsplit表示最大的分隔數(shù)escape(pattern)匹配字符串中的特殊字符,如*、+、?等re模塊的規(guī)則選項規(guī)則選項含義I或IGNORECASE忽略大小寫L或LOCALE字符集本地化,用于多語言環(huán)境M或MULTILINE多行匹配S或DOTALL使“.”匹配包括“\n”在內(nèi)的所有字符X或VERBOSE忽略正則表達(dá)式中的空白、換行,方便添加注釋U或UNICODE\w、\W、\b、\B、\d、\D、\s和\S都將使用Unicodere模塊的一些函數(shù)中都有一個flags參數(shù),該參數(shù)用于設(shè)置匹配的附加選項7.4.1匹配字符串使用match()函數(shù)用于從字符串的開始處進(jìn)行匹配,如果在起始位置匹配成功,則返回Match對象,否則,返回None使用search()函數(shù)用于在整個字符串中搜索第一個匹配的值,如果在起始位置匹配成功,則返回Match對象,否則,返回None使用findall()函數(shù)用于在整個字符串中搜索所有符合正則表達(dá)式的字符串,并以列表的形式返回。如果匹配成功,則返回包含匹配結(jié)構(gòu)的列表,否則返回空列表。7.4.2替換字符串re模塊提供了sub()函數(shù)用于替換在字符串中符合正則表達(dá)式的內(nèi)容,它返回替換后的字符串。re.sub(pattern,repl,string[,count],[,flags])7.4.3分割字符串re模塊提供了split()函數(shù)用于分割字符串,它返回分割后的字符串列表。re.split(pattern,string[,maxsplit=0],[,flags])7.5編譯生成正則表達(dá)式對象使用pile()函數(shù)將正則表達(dá)式編譯生成一個RegexObject對象。該對象擁有一系列方法用于查找、替換或分隔字符串,從而提高字符串的匹配速度。compile(pattern[,flags])7.5.1使用對象方法匹配字符串match()方法用于從字符串開始處進(jìn)行匹配或者從指定位置處進(jìn)行匹配search()方法在整個字符串中匹配搜索如果查找成功,將返回一個Match對象findall()方法用于在字符串中查找所有符合正則表達(dá)式的字符串并返回這些字符串的列表,否則返回空列表7.5.2使用對象方法替換字符串sub()方法subn()方法7.5.3使用對象方

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論