易語言正則表達式詳細教程_第1頁
易語言正則表達式詳細教程_第2頁
易語言正則表達式詳細教程_第3頁
易語言正則表達式詳細教程_第4頁
易語言正則表達式詳細教程_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《易語言“正則表達式”《易語言“正則表達式”匹配特定數(shù)據(jù),代碼編輯框中字符的等等,這都可以用正則表達式來完成目 目 第一章易語言正則表達式入 一.與DOS下的通配符類 第1個正則表達式程 第2個正則表達式例 第3個例 第二章揭開正則表達式的神秘面 引 一.正則表達式規(guī) 普通字 二.正則表達式中的一些高級規(guī) 反向\1, 三.其他通用規(guī) 四.其他提 第三章正則表達式工具與實 實例 實例 實例 實例 第四章正則表達式話 引 一.表達式的遞歸匹 二.非貪婪匹配的效 2.1效率陷阱的產(chǎn) 2.2效率陷阱的避 附 一.17種常用正則表達 第一章語言正則表達式入DOS“*123.*表示所有文件名為123的文件,如123.txt,123.doc,123.wps,123.swf,123.xls上述DOS下的通配符用“?”號代表一個字符“*”號代表任意個字符,但在正則表達式正是在“DOS*0a*意味著能夠匹配任意數(shù)量的ar.t:rat、rut、rt,但是不root(DOS^匹配一行的開始。例如^When能夠匹配字符串"Wheninthecourseofhumanevents"的開始,但是不能匹配"WhatandWheninthe"。$weasel$能夠匹配字符串"He'sa的末尾,但是不能匹配字符串"Theyareabunchofweasels.\** ],這個[ abc,acb,bac,bca,cab,cba6[0- 09[a- [A- 當然,你可以把它們混在一起寫成[a-z0-9]很多時候,我們需要檢查文本中的非數(shù)字,我們就可以使用^這個符號,[^0-9][^a-zA-Z][^FONT]FONT*0.?01+1^$0[范圍描述符。[a-z]az英文字母和數(shù)字。即[0-9A-Za-z]空字符,即[\t\n\r\f]數(shù)字,即[0-9]詞邊界字符(在范圍描述符外部時(0x08(前面元素最少出現(xiàn)mn|(四.正則表達式支持庫1 .局部變量正則表達式1,正則表達 1.(“A.C”,2.=1.1.1運行后,大家只要輸入三個字符,前為AC去匹配是否成功以及可以進行程序名稱的檢查程序中一些文字的檢查等,這可能讓一些不會正則的者很難下手。2支持庫的基本使用方法,下面這個例程可以讓大家了解正則會返回一些的內(nèi)1,1,1.(“A.C”,2.=1[1].1.AC31,1,搜索結(jié)果,,1.創(chuàng)建(“[a-z0-9”特殊符號.但注意如果有字符"^",就表示"除了",如"[^abc]"abc",現(xiàn)1=1.1.()2.內(nèi)容=1),2.11.1,1,1,1,111.=2.=1.1.1=11.1,=A.=1[1].1.B.=C.=1A.D.=A4\.0(模塊|4.00,請置這個程序的啟動窗口最前。01第二章揭開正則表達式的神秘面[文章,請保留或注明出處 引正則表達式(regularexpression)描述了一種字符串匹配的模式,可以用(2)做到由淺入深地講解,概念上沒有注意先后順序,給讀者的理解帶來;另一一.1ace23(01開始,因當前編程語言的不同而可能不同)匹配到的內(nèi)容是:“bcd14。一些不便書寫的字符,采用面加"\"的方法。這些字符其實我們都已經(jīng)\r,"\"還有其他一些在后邊章節(jié)中有特殊用處的標點符號,面加“\”后,就^匹配$匹配到的內(nèi)容是:“$d”;匹配到的位置是:開始于3,結(jié)束于5。只能是一個,不是多個。這就好比玩牌時候,大小王可以代替任意一張牌,任意一個數(shù)字,0~9A~Z,a~z,0~9,_.小數(shù)點可以匹配除了換行符(\n)以外的任意一個字1:表達式“\d\d”,在匹配“abc123”時,匹配的結(jié)果是:成功;匹配到的內(nèi)容是:“12”;匹配到的位置是:開始于3,結(jié)束于5。2:表達式“a.\d”,在匹配“aaa100”時,匹配的結(jié)果是:成功;匹配到的內(nèi)容是:“aa1”;匹配到的位置是:開始于1,結(jié)束于4。[][^]包匹配"a"或"b"或"5"或"a","b","c"[f-"f"~"k"[^A-F0-"A"~"F","0"~"3"舉例1:表達式“[bcd][bcd]”匹配“abc123”時,匹配的結(jié)果是:成功;匹配到的內(nèi)容是:“bc13。2:表達式“[^abc]”匹配“abc123”時,匹配的結(jié)果是:成功;匹配到的內(nèi)容是:“134。比如:“[bcd][bcd]”可以寫成“[bcd]{2}”。表達式重復(fù)n次,比如:"\w{2}""\w\w";"a{5}"表達式至少重復(fù)m次,最多重復(fù)n次,比如:"ba{1,3}""ba"或"baa"或表達式至少重復(fù)m次,比如:"\w\d{2,}"可以匹配?匹配表達式0次或者1次,相當于{0,1},比如:"a[cd]?"可以匹配+表達式至少出現(xiàn)1次,相當于{1,},比如:"a+b"*表達式不出現(xiàn)或出現(xiàn)任意次,相當于{0,},比如:"\^*b"1:表達式“\d+\.?\d*”在匹配“Itcosts$12.5”時,匹配的結(jié)果是:成功;匹配到的內(nèi)容是:“12.5”;匹配到的位置是:開始于10,結(jié)束于2:表達式“go{2,8}gle”在匹配“Adsbygoooooogle”時,匹配717。想取得某個的匹配可以如下哈哈越來越有意思了吧如果在一句話中找到某個也是非常簡單的了,^$1"^aaa""xxxaaaxxx"時,匹配結(jié)果是:失敗。因為"^""aaa"位于字符串的開頭的時候,"^aaa"才能匹配,比如:"aaaxxxxxx"。2"aaa$""xxxaaaxxx"時,匹配結(jié)果是:失敗。"$""aaa"位于字符串的結(jié)尾的時候,"aaa$"才能匹配,比如:"xxxxxxaaa"。3".\b.在匹配"@@@abc"時,匹配結(jié)果是:成功;匹配到的內(nèi)容是:"@a";匹配到的位置是:開始于2,結(jié)束于4。進一步說明:"\b""^""$"類似,本身不匹配任何字符,但是它要求它在匹配結(jié)果中所處位置的左右兩邊,其中一邊是"\w"范圍,另一邊是非"\w"的范圍。4\en\weknenfendend1518。一些符號可以影響表達 作|"或"(5"Tom|Jack""I'mTomheisJack"時,匹配結(jié)果是:成功;匹配到的內(nèi)容是:"Tom"4,結(jié)7。匹配下一個時,匹配結(jié)果是:成功;匹配到的內(nèi)容是:"Jack";匹配到1519。6"(go\s*)+""Let'sgogogo!"時,匹配結(jié)果是:成功;匹配到內(nèi)容是:"gogogo"614。7:表達式"¥(\d+\.?\d*)"在匹配"$10.9,¥20.5"時,匹配的10。單獨獲取括號范圍匹配到的內(nèi)容是:"20.5"。二.夠匹配不同的次數(shù),比如:"{m,nm"*",,具體匹配的次數(shù)可能多的匹配。比如,針對文本"dxxxdxxxd",舉例如下:“\w+”將匹配第一個“d”之后的所有字\w雖然第二個舉例中,它沒有匹配最后一個“”,但那也是為了讓整個表達式能*{mn}”的表達式在可匹配可不匹配的時候,也是盡可能的“要匹配”。這種匹配原則就叫作“貪婪”模式。舉例1:表達式“<td>(.*)</td>”與字符“<td><p>aa</p></tdtd><p>bb</p></td>舉例2:相比之下,表達式“<td>(.*?)</td>”匹配舉例1中同樣的字符反向\1,表達式在匹配時,表達式引擎會將小括號“()”包含的表達式所匹配到的字以使用,在匹配過程中也可以使用。表達式后邊的部分,可以前面“括號內(nèi)的子匹配已經(jīng)匹配到的字符串”。方法是“\”加上一個數(shù)字?!癨1”第1對括號內(nèi)匹配到的字符串,“\2”第2對括號內(nèi)匹配到的字符串……舉例1:表達式“('|")(.*?)(\1)”在匹配“'o',"World"”時,匹配結(jié)果是:成功;匹配到的內(nèi)容是:“'o'”。再次匹配下一個時,可以匹配到2(\w)\1{4,}一個時,將得到999999999。這個表達式要求“\w53:表達式“<(\w+)\s*(\w+(=('|").*?\4)?\s*)*>.*?</\1>”在匹配“<tdid='td1'style="bgcolor:white"></td>”時,匹配結(jié)果是成功。前面的章節(jié)中,本書講到了幾抽象意義的特殊符號:“^”,“$”,舉例1:表達Windows(?=NT|XP)”在匹Windows98,WindowsNTWindows2000”時,將只匹配“WindowsNT”中的“Windows”,其舉例2:表達式“(\w)((?=\1\1\1)(\1))+”在匹配字符串“aaaffffff9999999996個“f49個“9格式:“(?!xxxxx)xxxxx這部分表舉例4:表達式“do(?!\w)”在匹配字符串“done,do,dog”時,只能匹5:表達式“(?<=\d{4})\d+(?=\d{4})”在匹配“123456789012345644個數(shù)字之外的中間8個數(shù)字。由于JScript.RegExp不支持反向預(yù)搜索,因此,本條舉例不能夠進行演示。很多其他的引擎可以支持反向預(yù)搜索,比如:Java1.4以上的java.util.regex包,.NET中System.Text.RegularExpressions命名空間,以及本站推薦的最簡單易用的DEELX正則引擎。三.還有一些在各個正則表達式引擎之間比較通用的規(guī)則,面的講解過程中0~255"\s","\d","\w","\b表示特殊意義的同時,對應(yīng)的大寫匹配所有非空白字符("\s"可匹配各個空白字符"\w"范圍或者左右兩邊都不是"\w"范圍時的字符縫隙在表達式中有特殊意義,需要添加“\”才能匹配該字符本身的字符總^"^"$"$"("\("['多種字符'"\["{"\{".?01"?"+1"+"*0"*"|"或""|"括號“”內(nèi)的子表達式,如果希望匹配結(jié)果不進行記錄供以后使用, “(?:(\w)\1)+”匹配“abbccddefg”時,結(jié)果是來。默認情況下,表達式中的字母是要區(qū)分大小寫的。配置為Ignorecase可使"大小寫"".""^""$"Multiline"^""$"Global四.關(guān)于DEELX正則引擎的說明文檔。部分,那么可以在表達式的首尾使用"^"和"$",比如:"^\d+$"要求整個在表達式首尾使用"\b",比如:使用"\b(if|while|else|void|int……)\b"來有匹配到。比如:準備寫一個匹配"123"、"123."、"123.5"、".5"這幾種形每一部分都可以匹配0次,而這個括號整體又可以匹配無限次,那么情況可能"|"的左右兩邊,對某個字符最好只有一邊可以匹配,這樣,不會因為"|"兩邊的表達式因為交換位置而有所不同。第三章則表達式工具與實家介紹所有令。同時希望大家能安裝ESDN,很多例程大家都可以通過這個語言4\.0(模塊|支持庫)?)|(正則表達式.0,)將顯示“真”。

易語言4.0),4\.0(模塊|支持庫)?1個子表達式:“(模塊|支持打開隨書例程:匹配中文.e 大家可以這個貼子中的編譯程序源代碼,其中有一部分的接收到錯誤信息時,可以在ESDN中有一個替換網(wǎng)頁的例程,大家自己看吧第四章則表達式話[文章,請保留或注明出處 引一.使用表達式“\([^)]*”或者“\(.*”可以匹配一對小括號。但是如果括號內(nèi)還嵌有一層括號的話,如“”,則這種寫法將不能夠匹配正確,得到的結(jié)果是“(()”。類似情況的還有HTML中支持嵌套的如“<font>和GRETA中,表達式中使用"(?R)"來表示嵌套部分?!癨(([^()]|(?R))*\)”。[PerlPHP的示例代碼第一步,寫一個不能支

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論