正則表達(dá)式介紹和例子分析_第1頁
正則表達(dá)式介紹和例子分析_第2頁
正則表達(dá)式介紹和例子分析_第3頁
正則表達(dá)式介紹和例子分析_第4頁
正則表達(dá)式介紹和例子分析_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上正則表達(dá)式l 含義:編寫字符串處理的程序或網(wǎng)頁時(shí),會(huì)有查找符合某復(fù)雜規(guī)則的字符串的需要。正則表達(dá)式就是用于描述這些規(guī)則的工具。它是記錄文本規(guī)則的代碼。元字符用來代替字符的符號(hào)表1.常用的元字符代碼說明.匹配除換行符以外的任意字符w匹配字母或數(shù)字或下劃線或漢字s匹配任意的空白符d匹配數(shù)字注:s匹配任意的空白符,包括空格,制表符(Tab),換行符,中文全角空格等正則表達(dá)式中的空格會(huì)當(dāng)成空格匹配。(輸入幾個(gè)空格就匹配幾個(gè))非打印字符非打印字符也可以是正則表達(dá)式的組成部分。下表列出了表示非打印字符的轉(zhuǎn)義序列:字符描述cx匹配由x指明的控制字符。例如, cM 匹配一個(gè) Cont

2、rol-M 或回車符。x 的值必須為 A-Z 或 a-z 之一。否則,將 c 視為一個(gè)原義的 'c' 字符。f匹配一個(gè)換頁符。等價(jià)于 x0c 和 cL。n匹配一個(gè)換行符。等價(jià)于 x0a 和 cJ。r匹配一個(gè)回車符。等價(jià)于 x0d 和 cM。s匹配任何空白字符,包括空格、制表符、換頁符等等。等價(jià)于 fnrtv。S匹配任何非空白字符。等價(jià)于 fnrtv。t匹配一個(gè)制表符。等價(jià)于 x09 和 cI。v匹配一個(gè)垂直制表符。等價(jià)于 x0b 和 cK。限定符 重復(fù):表現(xiàn)重復(fù)時(shí)用的是大括號(hào)和* + ?,表示范圍時(shí)用的是中括號(hào),中括號(hào)里面是只選其中一個(gè)的組合。 表達(dá)分組時(shí)用圓括號(hào)(),一個(gè)圓括

3、號(hào)表示一個(gè)意思。表2.常用的限定符代碼/語法說明*重復(fù)零次或更多次+重復(fù)一次或更多次?重復(fù)零次或一次n重復(fù)n次n,重復(fù)n次或更多次n,m重復(fù)n到m次l 字符類,用來表示取字符的范圍區(qū)間,用中括號(hào)括起來0-9代表da-z0-9A-Z表示wl 分支條件,用|表示或者的關(guān)系。l 貪婪與懶惰、最先開始匹配擁有最高優(yōu)先權(quán)*、+和?限定符都是貪婪的,因?yàn)樗鼈儠?huì)盡可能多的匹配文字,只有在它們的后面加上一個(gè)?就可以實(shí)現(xiàn)非貪婪或最小匹配。.*表示盡可能匹配多的字符.*?表示盡可能少的字符例如:字符串a(chǎn)abab,用貪婪匹配a.*b得到aabab,用懶惰匹配a.*?b得到aab和ab定位符定位符使您能夠?qū)⒄齽t表達(dá)式

4、固定到行首或行尾。它們還使您能夠創(chuàng)建這樣的正則表達(dá)式,這些正則表達(dá)式出現(xiàn)在一個(gè)單詞內(nèi)、在一個(gè)單詞的開頭或者一個(gè)單詞的結(jié)尾。定位符用來描述字符串或單詞的邊界,和$分別指字符串的開始與結(jié)束,b描述單詞的前或后邊界,B表示非單詞邊界。正則表達(dá)式的限定符有:字符描述匹配輸入字符串開始的位置。如果設(shè)置了 RegExp 對(duì)象的 Multiline 屬性, 還會(huì)與 n 或 r 之后的位置匹配。$匹配輸入字符串結(jié)尾的位置。如果設(shè)置了 RegExp 對(duì)象的 Multiline 屬性,$ 還會(huì)與 n 或 r 之前的位置匹配。b匹配一個(gè)字邊界,即字與空格間的位置。B非字邊界匹配。子表達(dá)式分組獲?。ǎ﹍ 分組,用()

5、把子表達(dá)式括起來,給一個(gè)組號(hào),后面可以再用 l 后向引用,用()定義的分組,可以給它定一個(gè)組名,在后面加以利用。用(?<Word>w+)或者(?Wordw+)定義w+組名為Word,利用方式為k<Word>表4.常用分組語法分類代碼/語法說明捕獲(exp)匹配exp,并捕獲文本到自動(dòng)命名的組里(?<name>exp)匹配exp,并捕獲文本到名稱為name的組里,也可以寫成(?'name'exp)非捕獲(?:exp)匹配exp,不捕獲匹配的文本,也不給此分組分配組號(hào)零寬斷言(?=exp)匹配exp前面的位置(?<=exp)匹配exp后面的

6、位置(?!exp)匹配后面跟的不是exp的位置(?<!exp)匹配前面不是exp的位置注釋(?#comment)這種類型的分組不對(duì)正則表達(dá)式的處理產(chǎn)生任何影響,用于提供注釋讓人閱讀捕獲從下面的例子中可以看到,根據(jù)正則表達(dá)式,只捕獲了括號(hào)內(nèi)的東西到組中,第一個(gè)括號(hào)前面D*匹配到的東西被忽略了。零寬度斷言(?=exp) 用法:bw+(?=ing)b,匹配以ing結(jié)尾的單詞的前面部分,如查找Im singing and dancing,會(huì)匹配sing和danc(?<=exp) 用法:(?<=rea)w+b,匹配以rea開頭的單詞的后面部分,如查找reading a book,會(huì)匹配

7、ding注釋:(?#comment)例如:20-4d(?#200-249)|250-5(?#250-255)|01?dd?(?#0-199)反義l 反義,找完全相反的內(nèi)容。注意這里使用的都是大寫表3.常用的反義代碼代碼/語法說明W匹配任意不是字母,數(shù)字,下劃線,漢字的字符(剩下符號(hào)等) S匹配任意不是空白符的字符D匹配任意非數(shù)字的字符B匹配不是單詞開頭或結(jié)束的位置x匹配除了x以外的任意字符aeiou匹配除了aeiou這幾個(gè)字母以外的任意字符平衡組/遞歸匹配(?'group') 把捕獲的內(nèi)容命名為group,并壓入堆棧(Stack) (?'-group') 從堆棧

8、上彈出最后壓入堆棧的名為group的捕獲內(nèi)容,如果堆棧本來為空,則本分組的匹配失敗 (?(group)yes|no) 如果堆棧上存在以名為group的捕獲內(nèi)容的話,繼續(xù)匹配yes部分的表達(dá)式,否則繼續(xù)匹配no部分 (?!) 零寬負(fù)向先行斷言,由于沒有后綴表達(dá)式,試圖匹配總是失敗 <<>*(?'Open'<)<>*)+(?'-Open'>)<>*)+)*(?(Open)(?!)>可以從xx <aa <bbb> <bbb> aa> yy中找到<aa <bbb> <bbb> aa><div>*><>*(?'Open'<div>*>)<>*)+(?'-Open'</div>)<>*)+)*(?(Open)(?!)</div>可以找到配對(duì)的<div>和</div>,不管有沒有不配對(duì)的html出現(xiàn)。好的例子將所有地址中的ROAD寫成RD.若地址中的字符不是大寫的,先可以都改成大寫的。匹配以羅馬數(shù)字標(biāo)示的四位數(shù)年份注:在羅馬數(shù)字上加一個(gè)橫線,就會(huì)乘以1000

溫馨提示

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

評(píng)論

0/150

提交評(píng)論