shell正則表達(dá)式_第1頁
已閱讀1頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、作者:笑容作者:笑容前言前言正則表達(dá)式是煩瑣的,但是強(qiáng)大的,學(xué)會(huì)之后的應(yīng)用會(huì)讓你除了提高效率外,會(huì)給你帶來正則表達(dá)式是煩瑣的,但是強(qiáng)大的,學(xué)會(huì)之后的應(yīng)用會(huì)讓你除了提高效率外,會(huì)給你帶來絕對的成就感。只要認(rèn)真去閱讀這些資料,加上應(yīng)用的時(shí)候進(jìn)行一定的參考,掌握正則表絕對的成就感。只要認(rèn)真去閱讀這些資料,加上應(yīng)用的時(shí)候進(jìn)行一定的參考,掌握正則表達(dá)式不是問題。達(dá)式不是問題。索引索引1._引子引子2._正則表達(dá)式的歷史正則表達(dá)式的歷史3._正則表

2、達(dá)式定義正則表達(dá)式定義3.1_普通字符普通字符3.2_非打印字符非打印字符3.3_特殊字符特殊字符3.4_限定符限定符3.5_定位符定位符3.6_選擇選擇3.7_后向引用后向引用4._各種操作符的運(yùn)算優(yōu)先級各種操作符的運(yùn)算優(yōu)先級5._全部符號解釋全部符號解釋6._部分例子部分例子7._正則表達(dá)式匹配規(guī)則正則表達(dá)式匹配規(guī)則7.1_基本模式匹配基本模式匹配7.2_字符簇字符簇7.3_確定重復(fù)出現(xiàn)確定重復(fù)出現(xiàn)1.引子引子目前,正則表達(dá)式已經(jīng)在

3、很多軟件中得到廣泛的應(yīng)用,包括目前,正則表達(dá)式已經(jīng)在很多軟件中得到廣泛的應(yīng)用,包括nix(LinuxUnix等)等),HP等操作系統(tǒng),等操作系統(tǒng),PHP,C#,Java等開發(fā)環(huán)境,以及很多的應(yīng)用軟件中,都可以看到等開發(fā)環(huán)境,以及很多的應(yīng)用軟件中,都可以看到正則表達(dá)式的影子。正則表達(dá)式的影子。正則表達(dá)式的使用,可以通過簡單的辦法來實(shí)現(xiàn)強(qiáng)大的功能。為了簡單有效而又不失正則表達(dá)式的使用,可以通過簡單的辦法來實(shí)現(xiàn)強(qiáng)大的功能。為了簡單有效而又不失

4、強(qiáng)大,造成了正則表達(dá)式代碼的難度較大,學(xué)習(xí)起來也不是很容易,所以需要付出一些努強(qiáng)大,造成了正則表達(dá)式代碼的難度較大,學(xué)習(xí)起來也不是很容易,所以需要付出一些努力才行,入門之后參照一定的參考,使用起來還是比較簡單有效的。力才行,入門之后參照一定的參考,使用起來還是比較簡單有效的。例子:例子:^.@...$這樣的代碼曾經(jīng)多次把我自己給嚇退過。可能很多人也是被這樣的代碼給嚇跑的吧。這樣的代碼曾經(jīng)多次把我自己給嚇退過??赡芎芏嗳艘彩潜贿@樣的代碼給

5、嚇跑的吧。繼續(xù)閱讀本文將讓你也可以自由應(yīng)用這樣的代碼。繼續(xù)閱讀本文將讓你也可以自由應(yīng)用這樣的代碼。注意:這里的第注意:這里的第7部分跟前面的內(nèi)容看起來似乎有些重復(fù),目的是把前面表格里的部部分跟前面的內(nèi)容看起來似乎有些重復(fù),目的是把前面表格里的部分重新描述了一次,目的是讓這些內(nèi)容更容易理解。分重新描述了一次,目的是讓這些內(nèi)容更容易理解。2.正則表達(dá)式的歷史正則表達(dá)式的歷史正則表達(dá)式的正則表達(dá)式的“祖先祖先”可以一直上溯至對人類神經(jīng)系統(tǒng)如何

6、工作的早期研究??梢砸恢鄙纤葜翆θ祟惿窠?jīng)系統(tǒng)如何工作的早期研究。WarrenMcCulloch和WalterPitts這兩位神經(jīng)生理學(xué)家研究出一種數(shù)學(xué)方式來描述這些神這兩位神經(jīng)生理學(xué)家研究出一種數(shù)學(xué)方式來描述這些神經(jīng)網(wǎng)絡(luò)。經(jīng)網(wǎng)絡(luò)。1956年一位叫一位叫StephenKleene的數(shù)學(xué)家在的數(shù)學(xué)家在McCulloch和Pitts早期工早期工作的基礎(chǔ)上,發(fā)表了一篇標(biāo)題為作的基礎(chǔ)上,發(fā)表了一篇標(biāo)題為“神經(jīng)網(wǎng)事件的表示法神經(jīng)網(wǎng)事件的表示法”的論

7、文,引入了正則表達(dá)式的概念。的論文,引入了正則表達(dá)式的概念。正則表達(dá)式就是用來描述他稱為正則表達(dá)式就是用來描述他稱為“正則集的代數(shù)正則集的代數(shù)”的表達(dá)式,因此采用的表達(dá)式,因此采用“正則表達(dá)式正則表達(dá)式”這個(gè)術(shù)這個(gè)術(shù)語。語。用。將下一個(gè)字符標(biāo)記為或特殊字符、或原義字符、或向后引用、或八進(jìn)制轉(zhuǎn)義符。例如,將下一個(gè)字符標(biāo)記為或特殊字符、或原義字符、或向后引用、或八進(jìn)制轉(zhuǎn)義符。例如,n匹配字符匹配字符n。n匹配換行符。序列匹配換行符。序列匹配

8、匹配““,而,而(則匹配則匹配“(“。^匹配輸入字符串的開始位置,除非在方括號表達(dá)式中使用,此時(shí)它表示不接受該字符匹配輸入字符串的開始位置,除非在方括號表達(dá)式中使用,此時(shí)它表示不接受該字符集合。要匹配集合。要匹配^字符本身,請使用字符本身,請使用^。標(biāo)記限定符表達(dá)式的開始。要匹配標(biāo)記限定符表達(dá)式的開始。要匹配,請使用,請使用。|指明兩項(xiàng)之間的一個(gè)選擇。要匹配指明兩項(xiàng)之間的一個(gè)選擇。要匹配|,請使用,請使用|。構(gòu)造正則表達(dá)式的方法和創(chuàng)建數(shù)

9、學(xué)表達(dá)式的方法一樣。也就是用多種元字符與操作構(gòu)造正則表達(dá)式的方法和創(chuàng)建數(shù)學(xué)表達(dá)式的方法一樣。也就是用多種元字符與操作符將小的表達(dá)式結(jié)合在一起來創(chuàng)建更大的表達(dá)式。正則表達(dá)式的組件可以是單個(gè)的字符、符將小的表達(dá)式結(jié)合在一起來創(chuàng)建更大的表達(dá)式。正則表達(dá)式的組件可以是單個(gè)的字符、字符集合、字符范圍、字符間的選擇或者所有這些組件的任意組合。字符集合、字符范圍、字符間的選擇或者所有這些組件的任意組合。3.4限定符限定符限定符用來指定正則表達(dá)式的一個(gè)

10、給定組件必須要出現(xiàn)多少次才能滿足匹配。有限定符用來指定正則表達(dá)式的一個(gè)給定組件必須要出現(xiàn)多少次才能滿足匹配。有或或或n或n或nm共6種。種。、和限定符都是貪婪的,因?yàn)樗鼈儠?huì)盡可能多的匹配文字,只有在它們的后面加上一限定符都是貪婪的,因?yàn)樗鼈儠?huì)盡可能多的匹配文字,只有在它們的后面加上一個(gè)就可以實(shí)現(xiàn)非貪婪或最小匹配。就可以實(shí)現(xiàn)非貪婪或最小匹配。正則表達(dá)式的限定符有:正則表達(dá)式的限定符有:字符字符描述描述匹配前面的子表達(dá)式零次或多次。例如,匹

11、配前面的子表達(dá)式零次或多次。例如,zo能匹配能匹配“z“以及以及“zoo“。等價(jià)于等價(jià)于0。匹配前面的子表達(dá)式一次或多次。例如,匹配前面的子表達(dá)式一次或多次。例如,zo能匹配能匹配“zo“以及以及“zoo“,但不,但不能匹配能匹配“z“。等價(jià)于等價(jià)于1。匹配前面的子表達(dá)式零次或一次。例如,匹配前面的子表達(dá)式零次或一次。例如,“do(es)“可以匹配可以匹配“do“或“does“中的中的“do“。等價(jià)于等價(jià)于01。nn是一個(gè)非負(fù)整數(shù)。匹配

12、確定的是一個(gè)非負(fù)整數(shù)。匹配確定的n次。例如,次。例如,o2不能匹配不能匹配“Bob“中的中的o,但是能匹配,但是能匹配“food“中的兩個(gè)中的兩個(gè)o。nn是一個(gè)非負(fù)整數(shù)。至少匹配是一個(gè)非負(fù)整數(shù)。至少匹配n次。例如,次。例如,o2不能匹配不能匹配“Bob“中的中的o,但能匹配,但能匹配“foooood“中的所有中的所有o。o1等價(jià)于等價(jià)于o。o0則等價(jià)于則等價(jià)于o。nmm和n均為非負(fù)整數(shù),其中均為非負(fù)整數(shù),其中n=m。最少匹配。最少匹配n

13、次且最多匹配次且最多匹配m次。次。例如,例如,“o13“將匹配將匹配“fooooood“中的前三個(gè)中的前三個(gè)o。o01等價(jià)于等價(jià)于o。請。請注意在逗號和兩個(gè)數(shù)之間不能有空格。注意在逗號和兩個(gè)數(shù)之間不能有空格。3.5定位符定位符用來描述字符串或單詞的邊界,用來描述字符串或單詞的邊界,^和$分別指字符串的開始與結(jié)束,分別指字符串的開始與結(jié)束,b描述單詞的前描述單詞的前或后邊界,或后邊界,B表示非單詞邊界。不能對定位符使用限定符。表示非單詞邊

14、界。不能對定位符使用限定符。3.6選擇選擇用圓括號將所有選擇項(xiàng)括起來,相鄰的選擇項(xiàng)之間用用圓括號將所有選擇項(xiàng)括起來,相鄰的選擇項(xiàng)之間用|分隔。但用圓括號會(huì)有一個(gè)副作分隔。但用圓括號會(huì)有一個(gè)副作用,是相關(guān)的匹配會(huì)被緩存,此時(shí)可用用,是相關(guān)的匹配會(huì)被緩存,此時(shí)可用:放在第一個(gè)選項(xiàng)前來消除這種副作用。放在第一個(gè)選項(xiàng)前來消除這種副作用。其中其中:是非捕獲元之一,還有兩個(gè)非捕獲元是是非捕獲元之一,還有兩個(gè)非捕獲元是=和!,這兩個(gè)還有更多的含義,前

15、者,這兩個(gè)還有更多的含義,前者為正向預(yù)查,在任何開始匹配圓括號內(nèi)的正則表達(dá)式模式的位置來匹配搜索字符串,后者為正向預(yù)查,在任何開始匹配圓括號內(nèi)的正則表達(dá)式模式的位置來匹配搜索字符串,后者為負(fù)向預(yù)查,在任何開始不匹配該正則表達(dá)式模式的位置來匹配搜索字符串。為負(fù)向預(yù)查,在任何開始不匹配該正則表達(dá)式模式的位置來匹配搜索字符串。3.7后向引用后向引用對一個(gè)正則表達(dá)式模式或部分模式兩邊添加圓括號將導(dǎo)致相關(guān)匹配存儲到一個(gè)臨時(shí)緩對一個(gè)正則表達(dá)式模式或

溫馨提示

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

評論

0/150

提交評論