期基礎180621正則和考試題目_第1頁
期基礎180621正則和考試題目_第2頁
期基礎180621正則和考試題目_第3頁
期基礎180621正則和考試題目_第4頁
期基礎180621正則和考試題目_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Python基礎課教室講師:聆聽時間:2018年5月教學監(jiān)督熱線教學監(jiān)督熱線01020304必須掌握:推導表達式必須掌握:yield用法必須掌握:模塊的概念和導入方法必須掌握:包和包管理知識點回顧本節(jié)知識點01.正則02.元字符教學監(jiān)督熱線03.re模塊PARTONE正則教學監(jiān)督熱線思考01在實際的應用中,我們會經常得到用戶的輸入,在得到用戶的輸入之后,需要我們對輸入進行判斷時候合法,比如判斷輸入的手機號碼,從形式上來看是爭取的呢?正則01:使用函數(shù)02:使用正則

通過對比,可以很明顯的發(fā)現(xiàn),下面這種方式能夠簡單快捷的匹配出電話號碼x=input('請輸入手機號碼:')

defphone_check(phone):

st_phone=str(phone)

ifst_phone.startswith('1')andlen(st_phone)==11andst_phone.isdigit():

print(st_phone)

else:

print('請輸入正確的電話號碼')importre

x=input('請輸入手機號碼:')

defphone_check(phone):

st_phone=str(phone)

ifre.search(r'^1\d{10}',st_phone)isNone:

print('請輸入正確的電話號碼')

else:

print(st_phone)正則表達式正則表達式匹配應用通過正則匹配,可以迅速的過濾出我們需要的全部或者一部分字符串,查找文本中的特質值(如:病毒)等等通過式就可以去匹配現(xiàn)有的字符串正則表達正則表達式是一種通用的用來簡潔表達一組字符串的表達式,因此,正則表達式是和python無關的,在其他的語言或者不同的系統(tǒng)中,是通用的正則總結必須掌握:正則的概念PART

TWO元字符教學監(jiān)督熱線思考01正則表達式該如何書寫呢?元字符元字符:

.

^

$

*

+

?

{}

[]

\

|

()點脫字符美元符號乘號加號問號花括號中括號反斜杠豎線小括號正因為有這些元字符的存在,正則表達式才變得強大元字符. 通配符,匹配任意字符\ 正則轉義^ 匹配字符串的開始位置,在[]表示不取字符

$ 匹配字符串的結束位置{} 匹配次數(shù)* 匹配0次或多次+ 匹配1次或多次

? 匹配0次或1次

[] 字符集合() 分組匹配| 或運算分支條件元字符0102觀察如下兩個例子:re.search('a','abc')re.search('.','ab.cd.de')在第一個例子中,可以匹配出a但是下面這個不能匹配,但是下面這個沒有匹配出點,而是匹配到a

這個.不是不能匹配到點,而是匹配任意字符,這個點已經被賦予了特殊的含義,.(點)就是一個元字符\

.

^

$03040102\re.search('\bs\b','abcsdsw')re.search(r'\bs\b','abcsdsw')在正則中,加上r

去掉字符串的轉義,以免影響正則的使用.re.search(r'.','hc')re.search(r'.','\nhc')匹配除換行符之外的所有的字符\d匹配0~9的數(shù)字 re.search(r'\d','ab12')\s匹配任意的空白符,包括空格,制表符(Tab),換行符等 re.search(r'\s','ab12')\w匹配字母或數(shù)字或下劃線或漢字等

\b表示單詞的邊界 re.search(r'\w','ab12')\.

表示匹配點號本身 re.search(r'\.','adc.123')\D、\S、\W、\B是與小寫的相反的作用 re.search(r'\D','adc123')\D除啦數(shù)字以外的字符^

脫字符,匹配輸入字符串的開始的位置 re.search(r'^a','adc.123')$

匹配輸入字符串的結束位置 re.search(r'3$','adc.123'){}

*

+

?03040102{}re.findall(r'\d{1,3}','12ab23344'){M,N}M和N為非負整數(shù),其中M<=N表示前面的匹配M~N次{M,}表示需要匹配M次{,N}等價于{0~N}{N}表示需要匹配N次*re.findall(r'\d*','12ab23344')#

{0,}匹配前面的子表達式零次或多次,等價于{0,}+re.findall(r'\d+','12ab23344')

匹配前面的子表達式一次或多次,等價于{1,}?re.findall(r'\d?','12ab23344')匹配前面的子表達式零次或一次,等價于{0,1}貪婪與非貪婪0102*?+?re.findall(r'\d*?','12ab23344')re.findall(r'\d+?','12ab23344')st="<html>aaaa</html><td>bbbb</td>"re.findall(r'<.*>',st)re.findall(r'<.*?>',st)在非貪婪模式下,始終找最短匹配[]字符集合0102[]字符類,將要匹配的一類字符集放在[]里面re.findall(r'[\d]','12ab23344')

re.findall(r'[ab]','12ab23344')

re.findall(r'[a|b]','12ab23344')[.?*(){}]

匹配里面的這些符號

[0-9]

匹配0到9的數(shù)字相當于\d

[^\d]

匹配除數(shù)字以外的字符,相當于\D取反的意思

[a-z]

匹配所有的小寫字母

[^a-z]

匹配非小寫字母

|

相當于或(or)分支條件()分組匹配01()分組,將要匹配的一類字符集放在()組成一個小組re.findall(r'(2|3)','12ab.?*(){}23344')

re.findall(r'(\d)','21abc323')

re.findall(r'(^2)','21abc323')分組匹配匹配()內的字符串組合元字符總結必須掌握:所有元字符的用法和作用PARTTHREEre模塊教學監(jiān)督熱線思考01在python中如何使用正則呢?re模塊03040102complie 編譯正則表達式為模式對象r=pile(r'\d')

r.findall('123ab12')當正則表達式多次使用,可以采用這種方式sub 字符串替換re.sub('i','o','pythin',1)match從字符串開始匹配r=re.match(r'\d','1223ag')

re.match(r'\d','ad1223ag')r.group() 得到匹配到的元素r.start() 得到開始位置r.end() 得到結束為止r.span() 得到位置范圍注意:這幾個方法在search中也存在在re中也有和字符串一樣的split方法re.split(r'\s','aggbbwcee')

re.split(r'[\s|,]','aggbbw,cee')

re.split(r'\s','cee')

re.split(r'[\s|,]','aggbbw,acee')re

溫馨提示

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

評論

0/150

提交評論