




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Python核心編程學(xué)習(xí)筆記之chapter15這一章蠻重要,代碼都敲進(jìn)去試過,請批評指正。方便起見,程序?qū)懺趐y文獻(xiàn)中。1.
辨認(rèn)下列字符串:“bat,”“bit,”“but,”“hat,”“hit,”或“hut”
#!/usr/bin/envpythonimportrepattern='[bh][aiu]t'm='bkibit'n=re.search(pattern,m)ifnisnotNone:printn.group()Ps:還可以findall函數(shù)2.匹配用一個空格分隔的任意一對單詞,比如,名和姓
pattern='[A-Za-z]+\[A-Za-z]+'3.匹配用一個逗號和一個空格分開的一個單詞和一個字母。例如,英文人名中的姓和名
的首字母
pattern='[A-Za-z]+\.\[A-Za-z]'4.
匹配所有合法的Python標(biāo)記符pattern='[\w]+'Ps:不是非常完美,&算不算?5.請根據(jù)您(讀者)本地關(guān)于地址的格式寫法匹配一個街道地址(你寫出的正則表達(dá)式要
盡也許通用以匹配任意數(shù)目的表達(dá)街道名字的單詞,
涉及類型指示)。比如,美國的街道地址使用這
樣的格式:1180BordeauxDrive.
使你寫的正則表達(dá)式盡也許通用,規(guī)定可以匹配多個單詞的街道
名字,
如:3120DelaCruzBoulevard.
pattern='[\d]+\[A-Za-z\]+'Ps:1180BordeauxDriveofNewYork呢?
6.匹配簡樸的以“www.”開頭,以“.com”作結(jié)尾的Web域名,例如:.com.附
加題:使你寫的正則表達(dá)式還支持其他頂級域名:.edu,.net等,比如:.edu.
pattern='w{3}\.[\w]+\.[\w]+'Ps:seach與match的差別?7.匹配全體Python整數(shù)的字符串表達(dá)形式的集合
pattern='\d+'8.
匹配全體Python長整數(shù)的字符串表達(dá)形式的集合pattern='\d+[L]?'9.
匹配全體Python浮點(diǎn)數(shù)的字符串表達(dá)形式的集合pattern='\d+\.\d*'10.匹配全體Python復(fù)數(shù)的字符串表達(dá)形式的集合
pattern='\d*\.?\d*\+\d*\.?\d*j'匹配所有合法的電子郵件地址(先寫出一個限制比較寬松的正則表達(dá)式,然后盡也許加
強(qiáng)限制條件,但要保證功能的對的性)。
pattern='\w+\@\w+\.\w+'12.匹配所有合法的Web網(wǎng)站地址(URLs)(先寫出一個限制比較寬松的正則表達(dá)式,然后盡也許加強(qiáng)限制條件,但要保證功能的對的性)。pattern='www\.\w+\.\w+'13.type().type()內(nèi)建函數(shù)返回一個對象類型,此對象顯示為Python的字符串形式,
如下所示:
>>>type(0)
<type'int'>
>>>type(.34)
<type'float'>
>>>type(dir)
<type'builtin_function_or_method'>
請寫一個正則表達(dá)式,能從這個字符串中提取出類型的名字。你的函數(shù)能實(shí)現(xiàn)以下功能:如
果以字符串“<type'int'>”做輸入,會返回類型“int”.(返回其他類型也同理,如,返回類型‘float’,
‘builtin_function_or_method’等)提醒:對的的結(jié)果保存在類和某些內(nèi)建類型的__name__屬性
里。
pattern='<type\\'(\w+)\'>'n=re.search(pattern,"<type'float'>")ifnisnotNone:printn.group(1)14.正則表達(dá)式。在15.2小節(jié)里,我們給出一個匹配由一位或兩位數(shù)字代表一月到九月的
字符串形式(“0?[1-9]”)。請寫出一個正則表達(dá)式
表達(dá)標(biāo)準(zhǔn)日歷上其它的三個月(十月、十一月、
十二月)。
pattern='1[0-2]'15.正則表達(dá)式。在15.2小節(jié)里,我們給出一個匹配信用卡卡號的模式:(“[0-9]{15,16}”).
但這個模式不允許用連字符號分割信用卡卡號中的數(shù)字。請寫出一個允許使用連字符的正則表達(dá)式,
但規(guī)定連字符必須出現(xiàn)在對的的位置。例如,15位的信用卡卡號的格式是4-6-5,表達(dá)四個數(shù)字,一
個連字符,后面接六個數(shù)字、一個連字符,最后是五個數(shù)字。16位的信用卡卡號的格式是4-4-4-4,
數(shù)位局限性時,添0補(bǔ)位。'([0-9]{4}\-?[0-9]{4}\-?[0-9]{4}\-?[0-9]{4}?)|\([0-9]{4}\-?[0-9]{6}\-?[0-9]{5})'ps:基于此思緒還可以寫出限制更寬松或更嚴(yán)格的條件,這里的問號我認(rèn)為是出現(xiàn)一次或零次的意思,后來證實(shí)并非如此,但這個表達(dá)式是可行的16.修改腳本gendata.py的代碼,使數(shù)據(jù)直接寫入文獻(xiàn)redata.txt中,而不是輸出到屏
幕上。
#!/usr/bin/envpythonfromrandomimportrandint,choicefromstringimportlowercasefromsysimportmaxintfromtimeimportctimedoms=('com','edu','net','org','gov')t=''foriinrange(randint(5,10)):dtint=randint(0,maxint-1)#pickdatedtstr=ctime(dtint)#datestringshorter=randint(4,7)#loginshorterem=''forjinrange(shorter):#generateloginem+=choice(lowercase)longer=randint(shorter,12)#createdomaindn=''forjinrange(longer):dn+=choice(lowercase)t+='%s::%s@%s.%s::%d-%d-%d\n'%(dtstr,em,dn,choice(doms),dtint,shorter,longer)f=open('C:/python27/redata.txt','a')f.write(t)f.close()17.記錄生成的redata.txt文獻(xiàn)中,星期中的每一天出現(xiàn)的次數(shù)(或記錄各月份出現(xiàn)的次
數(shù))。#!/usr/bin/envpythonimportrem=['Mon','Tue','Wed','Thu','Fri','Sat','Sun']foriinrange(len(m)):x=[]pattern=m[i]f=open('C:/python27/redata.txt','r')foreachLineinf.readlines():n=re.search(pattern,eachLine)ifnisnotNone:x+=[n.group()]print'%sappears%dtimes'%(m[i],len(x))18.通過檢查每個輸出行中整數(shù)字段部分的第一個整數(shù)是否和該行開頭的時間戳相匹配來
驗證redata.txt中的數(shù)據(jù)是否完好
#!/usr/bin/envpythonimportrefromtimeimportctimepattern='\:\:(\d+)'f=open('C:/python27/redata.txt','r')j=0foreachLineinf.readlines():n=re.search(pattern,eachLine)pattern1='[A-Z][a-z]{2}\[A-Z][a-z]{2}\\d+\\d+\:\d+\:\d+\\d+'m=re.search(pattern1,eachLine).group()str(m)ifnisnotNone:k=ctime(int(n.group(1)))str(k)ifm==k:passelse:j+=1print'the%dthlineisnotcomplete'%jifj==0:print'thetxtiscomplete'19.
提取出每行中完整的時間戳字段pattern='[A-Z][a-z]{2}\[A-Z][a-z]{2}\\d+\\d+\:\d+\:\d+\\d+'20.提取出每行中完整的電子郵件地址。(與前面的題考察內(nèi)容相同,所以可以按自己喜好來做,嘗試不同的思緒)pattern='\:\:(.+?)\:\:'21.只提取出時間戳字段中的月份。pattern='(\w{3})\\d{2}'22.只提取出時間戳字段中的年份
pattern='[1-2]\d{3}'23.只提取出時間戳字段中的值(格式:HH:MM:SS)。pattern='\d{2}\:\d{2}\:\d{2}'24.只從電子郵件地址中提取出登錄名和域名(涉及主域名和頂級域名,兩者連在一起)pattern='\w+\@\w+\.\w{3}'25.只從電子郵件地址中提取出登錄名和域名(涉及主域名和頂級域名,兩者分別提取)。pattern='(\w+)\@(\w+\.\w{3})'26.
將每行中的電子郵件地址替換為你自己的電子郵件地址n=re.sub(pattern,'',eachLine)27.提取出時間戳中的月、日、年,并按照格式“月日,年”顯示出來,且每行僅遍
歷一次#!/usr/bin/envpythonimportref=open('C:/python27/redata.txt','r')pattern='(\w{3}\\d{2}).+?(\d{4})\:'foreachLineinf.readlines():n=re.search(pattern,eachLine)printn.group(1),',',n.group(2)28.區(qū)號(第一組的三個數(shù)字和它后面的連字符)是可選的,即,你寫的正則表達(dá)式對
800-5
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 古建彩繪采購合同范本
- 公司出租地合同范本
- 合伙人結(jié)算合同范本
- 個人住房借款合同范本
- 臺州網(wǎng)絡(luò)推廣合同范本
- 校園超市承包合同范本
- 廚藝加盟合同范本
- 單位資產(chǎn)轉(zhuǎn)讓合同范本
- 發(fā)電機(jī)維修合同范本
- 合同范本模板學(xué)校
- 2025年天翼云解決方案架構(gòu)師認(rèn)證考試指導(dǎo)題庫-下(多選、判斷題)
- 礦山機(jī)械傷害安全培訓(xùn)
- 《走進(jìn)汽車》課件
- 2025貴州省黔東南州直屬事業(yè)單位招聘202人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年語文高考復(fù)習(xí)計劃解析
- 新生兒腸道病毒感染
- 2025年度專業(yè)酒店裝修承攬合同
- 2025年度5G基站建設(shè)勞務(wù)合同范本
- (完整版)班主任量化考核細(xì)則
- 2025年中國鐵路鄭州局集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 2025年上半年永春縣農(nóng)文旅發(fā)展集團(tuán)限公司公開招聘若干名工作人員易考易錯模擬試題(共500題)試卷后附參考答案
評論
0/150
提交評論