正則表達(dá)式的匹配和應(yīng)用_第1頁
正則表達(dá)式的匹配和應(yīng)用_第2頁
正則表達(dá)式的匹配和應(yīng)用_第3頁
正則表達(dá)式的匹配和應(yīng)用_第4頁
正則表達(dá)式的匹配和應(yīng)用_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

正則表達(dá)式的匹配和應(yīng)用第1頁,課件共23頁,創(chuàng)作于2023年2月主要內(nèi)容正則表達(dá)式簡介正則表達(dá)式匹配實例正則表達(dá)式應(yīng)用第2頁,課件共23頁,創(chuàng)作于2023年2月什么是正則表達(dá)式定義正則表達(dá)式,就是用某種模式去匹配一類字符串的公式。應(yīng)用可用于查找特定條件的字符串可用于某些工具(vi,grep,find等)中進(jìn)行模式匹配和替換第3頁,課件共23頁,創(chuàng)作于2023年2月正則表達(dá)式基礎(chǔ)普通字符大小寫的字母和數(shù)字元字符具有特殊的含義的字符第4頁,課件共23頁,創(chuàng)作于2023年2月元字符(1).匹配單個字符如:r.t匹配rat,rot等*匹配0個或多個在它之前的那個字符

如:r*t匹配t,rt,rrt等+匹配1或多個正好在它之前的那個字符如:r+t匹配rt、rrt等,但不匹配t\引用符,用來將元字符當(dāng)作普通的字符

來進(jìn)行匹配

如;\.匹配字符.第5頁,課件共23頁,創(chuàng)作于2023年2月元字符(2)?匹配0或1個在它之前的那個字符

如:r?t只匹配t和rt|兩個匹配條件進(jìn)行邏輯“或”運算

如:\(him\|her\)匹配him或者h(yuǎn)er

$匹配行結(jié)束符

如:boy$匹配以boy為行結(jié)尾的字符串^匹配一行的開始

如:^boy

匹配以boy為行首的字符串第6頁,課件共23頁,創(chuàng)作于2023年2月元字符(3)[]匹配括號中的任何一個字符

如:r[aou]t匹配rat,rot,rut[c1-c2]括號中可以使用連字符-來指定

字符的區(qū)間

如:[0-9]

匹配0,1,2,3,4,5,6,7,8,9[^c1-c2]匹配除了指定區(qū)間之外的字符(補(bǔ)集)如:[^269A-C]

匹配除了2,6,9,A,B,C以外的任何一個字符

第7頁,課件共23頁,創(chuàng)作于2023年2月元字符(4)\<和\>

匹配詞(word)的開始和結(jié)束

如:\<the匹配them,但不匹配other

如:the\>匹配breathe,但不匹配other\(\)

將\(和\)之間的表達(dá)式定義為“組”(group),并且將匹配這個表達(dá)式的字符保存到一個臨時區(qū)域(一個正則表達(dá)式中最多可以保存9個),它們可以用

\1

到\9

的符號來引用。:%s/\(99\)/\1aa/g將99替換成99aa第8頁,課件共23頁,創(chuàng)作于2023年2月元字符(5)\{i\}和\{i,j\}匹配指定數(shù)目的字符,這些字符是在它之前的表達(dá)式定義的。如:正則表達(dá)式A[0-9]\{3\}

能夠匹配字符“A”后面跟著正好3個數(shù)字字符的串,例如A123、A348等,但是不匹配A12a4。正則表達(dá)式[0-9]\{4,6\}

匹配連續(xù)的任意4個、5個或者6個數(shù)字字符。

第9頁,課件共23頁,創(chuàng)作于2023年2月主要內(nèi)容正則表達(dá)式簡介正則表達(dá)式匹配實例正則表達(dá)式應(yīng)用第10頁,課件共23頁,創(chuàng)作于2023年2月正則表達(dá)式的匹配(1)fo+可以與目標(biāo)對象中的

“fool”,“fo”,或者

“football”等在字母f后面連續(xù)出現(xiàn)一個或多個字母o的字符串相匹配

eg*與目標(biāo)對象中的

“easy”,“ego”,或者

“egg”等在字母e后面連續(xù)出現(xiàn)零個或多個字母g的字符串相匹配

Wil?與目標(biāo)對象中的”Win”,“Wilson”等在字母i后面連續(xù)出現(xiàn)零個或一個字母l的字符串相匹配

Jim\{2,6\}規(guī)定字符m可以在匹配對象中連續(xù)出現(xiàn)2-6次,可以同jimmy或jimmmmmy等字符串相匹配第11頁,課件共23頁,創(chuàng)作于2023年2月正則表達(dá)式的匹配(2)^hell以

“hell”,“hello”或

“hellhound”開頭的字符串

ar$以

“car”,“bar”或

“ar”

結(jié)尾的字符串

[A-Z]A到Z范圍內(nèi)任何一個大寫字母相匹配

[a-z]從a到z范圍內(nèi)任何一個小寫字母相匹配

第12頁,課件共23頁,創(chuàng)作于2023年2月正則表達(dá)式的匹配(3)[0-9]從0到9范圍內(nèi)任何一個數(shù)字

([a-z][A-Z][0-9])+任何由字母和數(shù)字組成的字符串to|too|2與目標(biāo)對象中的

“to”,“too”,或

“2”

相匹配

[^A-C]與目標(biāo)對象中除A,B,和C之外的任何字符相匹配

第13頁,課件共23頁,創(chuàng)作于2023年2月主要內(nèi)容正則表達(dá)式簡介正則表達(dá)式匹配實例正則表達(dá)式應(yīng)用第14頁,課件共23頁,創(chuàng)作于2023年2月正則表達(dá)式在find中的應(yīng)用find/dev/–nametty[0-9]在/dev下查找以tty開頭,后面跟一個數(shù)字的文件第15頁,課件共23頁,創(chuàng)作于2023年2月正則表達(dá)式在grep中的應(yīng)用文本文件phone.txtFrancis,John

5-3871Wong,Fred

4-4123Jones,Thomas

1-4122Salazar,Richard

5-2522grep命令1)grep'^S[^]*R'phone.txt2)grep'^[JW]'phone.txt3)grep-v'^[JW]'phone.txt4)grep'^[M-Z]'phone.txt5)grep'^[M-Z].*[12]'phone.txt第16頁,課件共23頁,創(chuàng)作于2023年2月正則表達(dá)式在vi中的應(yīng)用Vi的替換命令:ranges/pat1/pat2/range是命令執(zhí)行范圍的指定

pat1查找的一個正則表達(dá)式

pat2這是希望把匹配串變成的模式的正則表達(dá)式

第17頁,課件共23頁,創(chuàng)作于2023年2月正則表達(dá)式在vi中的應(yīng)用--例1:%s/*//g把一個或者多個空格替換為一個空格。:%s/*$//去掉行尾的所有空格。:%s/^//在每一行頭上加入一個空格。:%s/^[0-9][0-9]*//

去掉行首的所有數(shù)字字符。:%s/b[aeio]g/bug/g將所有的bag、beg、big和bog改為bug。:%s/t\([aou]\)g/h\1t/g將所有tag、tog和tug分別改為hat、hot和hug(注意用group的用法和使用\1引用前面被匹配的字符)。第18頁,課件共23頁,創(chuàng)作于2023年2月正則表達(dá)式在vi中的應(yīng)用--例2將a,b,c的實例改為b,a,c之前

10,7,2x+13,y-2,10bar(8),x+y+z,5之后7,10,2y-2,x+13,10x+y+z,bar(8),5第19頁,課件共23頁,創(chuàng)作于2023年2月正則表達(dá)式在vi中的應(yīng)用--例2:%s/\([^,]*\),\([^,]*\),/\2,\1,/g

解釋[^,]

除了逗號之外的任何字符[^,]*0或者多個非逗號字符\([^,]*\)將這些非逗號字符標(biāo)記為\1,這樣可以在之后的替換模式表達(dá)式中引用它\([^,]*\),我們必須找到0或者多個非逗號字符后面跟著一個逗號,并且非逗號字符那部分要標(biāo)記出來以備后用。第20頁,課件共23頁,創(chuàng)作于2023年2月正則表達(dá)式在vi中的應(yīng)用--例3文本文件Billytriedreallyhard

Sallytriedreallyreallyhard

Timmytriedreallyreallyreallyhard

Johnnytriedreallyreallyreallyreallyhard轉(zhuǎn)化為Billytriedveryhard

Sallytriedveryhard

Timmytriedveryhard

Johnnytriedveryhard第21頁,課件共23頁,創(chuàng)作于2023年2月正則表達(dá)式在vi中的

溫馨提示

  • 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

提交評論