正則表達式入門教程(VBA)_第1頁
正則表達式入門教程(VBA)_第2頁
正則表達式入門教程(VBA)_第3頁
正則表達式入門教程(VBA)_第4頁
正則表達式入門教程(VBA)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、正則表達式入門教程(VBA日期:2011-08-25來源: 作者:admin字體:大 中 小引言正則表達式(regular expression )就是用一個“字符串”來描述一個特征,然后去驗證另一個“字符串”是否符合這個特征。比如 表達式“ab+” 描述的特征是"一個a' 和 任意個b'",那么ab', 'abb', 'abbbbbbbbbb'都符合這個特征。正則表達式可以用來:(1)驗證字符串是否符合指定特征,比如驗證是否是合法的郵件地址。(2)用來查找字符串,從一個長的文本中查找符合指定特征的字符串,比查找固定字

2、符串更加靈活方便。(3)用來替換,比普通的替換更強大。正則表達式學習起來其實是很簡單的,不多的幾個較為抽象的概念也很容易理解。之所以很多人感覺正則表達式比較復雜,一方面 是因為大多數的文檔沒有做到由淺入深地講解,概念上沒有注意先后順序,給讀者的理解帶來困難;另一方面,各種引擎自帶的文檔一 般都要介紹它特有的功能,然而這部分特有的功能并不是我們首先要理解的。文章中的每一個舉例,都可以點擊進入到測試頁面進行測試。閑話少說,開始。1 .正則表達式規(guī)則1.1 普通字符字母、數字、漢字、下劃線、以及后邊章節(jié)中沒有特殊定義的標點符號,都是"普通字符”。表達式中的普通字符,在匹配一個字符串的時候,

3、匹配與之相同的一個字符。舉傷J 1:表達式"c",在匹配字符串"abcde"時,匹配結果是:成功;匹配到的內容是:"c";匹配到的位置是:開始于 2,結束于3。(注:下標從0開始還是從1開始,因當前編程語言的不同而可能不同)舉傷J 2:表達式"bcd",在匹配字符串"abcde"時,匹配結果是:成功;匹配到的內容是: "bcd";匹配到的位置是:開始于 1, 結束于4。1.2 簡單的轉義字符一些不便書寫的字符,采用在前面加"” 的方法。這些字符其實我們都已經熟知了表

4、達式可匹配r, n代表回車和換行符t制表符代表"" 本身還有其他一些在后邊章節(jié)中有特殊用處的標點符號,在前面加“" 后,就代表該符號本身。比如: A, $都有特殊意義,如果要想匹配字符串中"A" 和"$"字符,則表達式就需要寫成"A" 和"$"表達式可匹配A匹配A符號本身$匹配$符號本身.匹配小數點(.)本身這些轉義字符的匹配方法與"普通字符"是類似的。也是匹配與之相同的一個字符。舉傷J 1:表達式“$d",在匹配字符串"abc$de"

5、時,匹配結果是:成功;匹配到的內容是:"$d";匹配到的位置是:開始于 3,結束于5。1.3 能夠與多種字符匹配的表達式正則表達式中的一些表示方法,可以匹配多種字符其中的任意一個字符。比如,表達式 "d" 可以匹配任意一個數字。雖然可以匹配其中任意字符,但是只能是一個,不是多個。這就好比玩撲克牌時候,大小王可以代替任意一張牌,但是只能代替一張牌。表達式可匹配d任意一個數字,09中的任意一個w任意一個字母或數字或下劃線,也就是AZ,az,09,_中任意一個s包括空格、制表符、換頁符等空白字符的其中任意一個.小數點可以匹配除了換行符(n )以外的任意一個字符

6、舉傷J 1:表達式"dd ",在匹配"abc123"時,匹配的結果是:成功;匹配到的內容是:"12"匹配到的位置是:開始于 3,結束于5。舉傷J 2:表達式"a.d ",在匹配"aaa100"時,匹配的結果是:成功;匹配到的內容是:"aa1";匹配到的位置是:開始于 1 ,結束于4。1.4 自定義能夠匹配多種字符的表達式使用方括號包含一系列字符,能夠匹配其中任意一個字符。用 A 包含一系列字符,則能夠匹配其中字符之外的任意一個字符。同樣的道理,雖然可以匹配其中任意一個,但是只

7、能是一個,不是多個。表達式可匹配ab5匹配"a" 或"b" 或"5" 或""Aabc匹配"a","b","c"之外的任意一個字符f-k匹配"f""k"之間的任意一個字母匹配"A""F","0""3"之外的任意一個字AA-F0-3符舉傷J 1:表達式"bcdbcd"匹配"abc123" 時,匹配的結果

8、是:成功;匹配到的內容是:"bc";匹配到的位置是:開始于 1,結束于3。舉傷J 2:表達式"Fabc"匹配"abc123" 時,匹配的結果是:成功;匹配到的內容是:"1"匹配到的位置是:開始于 3,結束于4。1.5 修飾匹配次數的特殊符號前面章節(jié)中講到的表達式,無論是只能匹配一種字符的表達式,還是可以匹配多種字符其中任意一個的表達式,都只能匹配一次。如果使用表達式再加上修飾匹配次數的特殊符號,那么不用重復書寫表達式就可以重復匹配。使用方法是:"次數修飾"放在"被修飾的表達式"

9、;后邊。比如:"bcdbcd" 可以寫成"bcd2"。表達式作用n表達式重復 n次,比如:"w2" 相當于"ww" ; "a5" 相當于"aaaaa"m,n表達式至少重復 m次,最多重復n次,比如:"ba1,3" 可以匹配"ba"或"baa"或"baaa"m,表達式至少重復 m次,比如:"wd2," 可以匹配"a12","_456",&q

10、uot;M12344".?匹配表達式0次或者1次,相當于0,1,比如:"acd?"可以匹配"a","ac","ad"+表達式至少出現1次,相當于1,比如:"a+b"可以匹配"ab","aab","aaab".*表達式不出現或出現任意次,相當于 0,,比如:"A*b"可以匹配"b","AAAb".舉傷J 1:表達式"d+. ?d *"在匹配"

11、;It costs $12.5"時,匹配的結果是:成功;匹配到的內容是: "12.5"匹配到的位置是: 開始于10,結束于14。舉例2:表達式"go2,8 gle "在匹配"Ads by goooooogle"時,匹配的結果是:成功;匹配到的內容是:"goooooogle";匹配到的位置是:開始于 7,結束于17。1.6 其他一些代表抽象意義的特殊符號一些符號在表達式中代表抽象的特殊意義:表達式作用A與字符串開始的地方匹配,不匹配任何字符$與字符串結束的地方匹配,不匹配任何字符b匹配一個單詞邊界,也就是單

12、詞和空格之間的位置,不匹配任何字符進一步的文字說明仍然比較抽象,因此,舉例幫助大家理解。舉傷J 1:表達式"Aaaa"在匹配"xxx aaa xxx"時,匹配結果是:失敗。因為0"A"要求與字符串開始的地方匹配,因此,只有當"aaa" 位于字符串的開頭的時候,"Aaaa"才能匹配,比如: "aaa xxx xxx"舉例2:表達式"aaa$"在匹配"xxx aaa xxx"時,匹配結果是:失敗。因為"$"要求與字符串結

13、束的地方匹配,因此,只有當"aaa" 位于字符串的結尾的時候,"aaa$"才能匹配,比如: "xxx xxx aaa"0舉例3:表達式".b."在匹配"abc附,匹配結果是:成功;匹配到的內容是:"a";匹配到的位置是:開始于 2,結束于4。進一步說明:"b"與"A"和*"類似,本身不匹配任何字符,但是它要求它在匹配結果中所處位置的左右兩邊,其中一邊是"w"范圍,另一邊是 非"w"的范圍。舉例4:

14、表達式"b endb "在匹配"weekend,endfor,end" 時,匹配結果是:成功;匹配到的內容是:"end";匹配到的位置是:開始于15,結束于18。一些符號可以影響表達式內部的子表達式之間的關系:表達式作用|左右兩邊表達式之間"或"關系,匹配左邊或者右邊()(1) .在被修飾匹配次數的時候,括號中的表達式可以作為整體被修飾(2) .取匹配結果的時候,括號中的表達式匹配到的內容可以被單獨得到舉例5:表達式"TomJack"在匹配字符串"I'm Tom, he is

15、Jack" 時,匹配結果是:成功;匹配到的內容是:"Tom";匹配到的位置是:開始于 4,結束于7。匹配下一個時,匹配結果是:成功;匹配到的內容是:"Jack"匹配到的位置時:開始于 15,結束于19。舉例6:表達式"(gos*)+"在匹配"Let's go go go!"時,匹配結果是:成功;匹配到內容是:"go go go"匹配到的位置是:開始于6,結束于14。舉例7:表達式"¥(d+. ?d * )"在匹配"$10.9, ¥

16、; 20.5"時,匹配的結果是:成功;匹配到的內容是:"¥20.5"匹配到的位置是:開始于6,結束于10。單獨獲取括號范圍匹配到的內容是:"20.5"2.正則表達式中的一些高級規(guī)則2.1 匹配次數中的貪婪與非貪婪比如:"m,n","m,","?",在使用修飾匹配次數的特殊符號時,有幾種表示方法可以使同一個表達式能夠匹配不同的次數,"+",具體匹配的次數隨被匹配的字符串而定。這種重復匹配不定次數的表達式在匹配過程中,總是盡可能多的匹配。比如,針對文本 &qu

17、ot;dxxxdxxxd",舉例如下:表達式匹配結果(d)(w+)"w+"將匹配第一個"d" 之后的所有字符"xxxdxxxd"(d)(w+)( d)"w+"將匹配第一個"d" 和最后一個"d"之間的所有字符"xxxdxxx"。雖然"w+"也能夠匹配上最后一個"d",但是為了使整個表達式匹配成功,"w+"可以"讓出"它本來能夠匹配的最后一個"d"由

18、此可見,"w+"在匹配的時候,總是盡可能多的匹配符合它規(guī)則的字符。雖然第二個舉例中,它沒有匹配最后一個"d",但那也是為了讓整個表達式能夠匹配成功。同理,帶"*" 和"m,n"的表達式都是盡可能地多匹配,帶"?"的表達式在可匹配可不匹配的時候,也是盡可能的"要匹配"。這 種匹配原則就叫作"貪婪"模式。非貪婪模式:在修飾匹配次數的特殊符號后再加上一個"?"號,則可以使匹配次數不定的表達式盡可能少的匹配,使可匹配可不匹配的表達式,盡可能的&

19、quot;不匹配"。這種匹配原則叫作 "非貪婪"模式,也叫作"勉強”模式。如果少匹配就會導致整個表達式匹配失敗的時候,與貪婪模式類似,非貪婪模式會最小限度的再匹配一些,以使整個表達式匹配成功。舉例如下,針對文本"dxxxdxxxd" 舉例:表達式匹配結果(d)( w+?)"w+?"將盡可能少的匹配第一個"d" 之后的字符,結果是:"w+?"只匹配了一個"x"(d)(w+?)( d)為了讓整個表達式匹配成功,"w+?"不得不匹配"

20、;xxx" 才可以讓后邊的"d"匹配,從而使整個表達式匹配成功。因此,結果是:"w+?"匹配"xxx"更多的情況,舉例如下:舉傷J 1:表達式"<td> ( . *) </td> "與字符串"<td><p>aa</p></td> <td><p>bb</p></td>"匹配時,匹配的結果是:成功;匹配到的內容是"<td><p>aa<

21、;/p></td><td><p>bb</p></td>"整個字符串,表達式中的"</td>"將與字符串中最后一個"</td>" 匹配。舉例2:相比之下,表達式 "<td>(. *?)</td> "匹配舉例1中同樣的字符串時,將只得到"<td><p>aa</p></td>",再次匹配下一個時,可以得到第二個"<td><p

22、>bb</p></td>"。2.2 反向引用1, 2.表達式在匹配時,表達式引擎會將小括號"()"包含的表達式所匹配到的字符串記錄下來。在獲取匹配結果的時候,小括號包含的表達式所匹配到的字符串可以單獨獲取。這一點,在前面的舉例中,已經多次展示了。在實際應用場合中,當用某種邊界來查找, 而所要獲取的內容又不包含邊界時,必須使用小括號來指定所要的范圍。比如前面的"<td> (. *?) </td> "。其實,"小括號包含的表達式所匹配到的字符串"不僅是在匹配結束后才可以使用,

23、在匹配過程中也可以使用。表達式后邊的部分,可以引用前面"括號內的子匹配已經匹配到的字符串"。引用方法是"" 加上一個數字。"1"引用第1對括號內匹配到的字符串, "2"弓I用第2對括號內匹配到的字符串以此類推,如果一對括號內包含另一對括號,則外層的括號先排序號。換句話說,哪一對的 左括號"("在前,那這一對就先排序號。舉例如下:舉例J 1:表達式"(|")( . *?)(1 )"在匹配"'Hello', "World"&

24、quot; 時,匹配結果是:成功;匹配到的內容是:"'Hello'"。再次匹配下一個時,可以匹配到""World""。舉例2:表達式"(w)1 4,"在匹配"aa bbbb abcdefg ccccc 111121111 999999999" 時,匹配結果是:成功;匹配到的內容是"ccccc"。再次匹配下一個時,將得到999999999。這個表達式要求"w" 范圍的字符至少重復 5次,注意與"w5," 之間的區(qū)別。舉例

25、3:表達式"<(w+)s *(w+(=('| ") .*?4)?s *)*>.*?</1 >"在匹配"<td id='td1' style="bgcolor:white"></td>"時,匹配結果是成功。如果 “<td>" 與"</td>"不配對,則會匹配失??;如果改成其他配對,也可以匹配成功。2.3 預搜索,不匹配;反向預搜索,不匹配前面的章節(jié)中,我講到了幾個代表抽象意義的特殊符號:"八&

26、quot;,"$" , "b"。它們都有一個共同點,那就是:它們本身不匹配任何字符,只是對"字符串的兩頭"或者"字符之間的縫隙"附加了一個條件。理解到這個概念以后,本節(jié)將繼續(xù)介紹另外一種對"兩頭"或者“縫隙”附加條件的,更加靈活的表示方法。正向預搜索:"(?=xxxxx)" , "(?!xxxxx)"格式:"(?=xxxxx)”,在被匹配的字符串中,它對所處的"縫隙"或者"兩頭"附加的條件是:所在縫隙的右側

27、,必須能夠匹配上xxxxx這部分的表達式。因為它只是在此作為這個縫隙上附加的條件,所以它并不影響后邊的表達式去真正匹配這個縫隙之后的字符。這就類似“b",本身不匹配任何字符。"b"只是將所在縫隙之前、之后的字符取來進行了一下判斷,不會影響后邊的表達式來真正的 匹配。舉傷J 1:表達式"Windows (?=NTXP)"在匹配"Windows 98, Windows NT, Windows 2000"時,將只匹配 "Windows NT" 中的"Windows ",其他的"Wi

28、ndows "字樣則不被匹配。舉例2:表達式"(w)( (?= 111 ) (1 ) +"在匹配字符串"aaa ffffff 999999999" 時,將可以匹配 6個"f"的前4個,可以匹配9個"9"的前7個。這個表達式可以讀解成:重復4次以上的字母數字,則匹配其剩下最后2位之前的部分。當然,這個表達式可以不這樣寫,在此的目的是作為演示之用。格式:"(?!xxxxx)",所在縫隙的右側,必須不能匹配 xxxxx 這部分表達式。舉例3:表達式"(?! b stop b ).)

29、+"在匹配"fdjka ljfdl stop fjdsla fdj"時,將從頭一直匹配到 "stop"之前的位置,如果字符串中沒有"stop",則匹配整個字符串。舉例4:表達式"do(?! w)"在匹配字符串"done, do, dog"時,只能匹配"do"。在本條舉例中,"do"后邊使用"(?!w)" 和使用"b"效果是一樣的。反向預搜索:"(?<=xxxxx)" , "

30、;(?<!xxxxx)"這兩種格式的概念和正向預搜索是類似的,反向預搜索要求的條件是:所在縫隙的"左側",兩種格式分別要求必須能夠匹配和必須不能夠匹配指定表達式,而不是去判斷右側。與”正向預搜索”一樣的是:它們都是對所在縫隙的一種附加條件,本身都不匹配任何字符。舉例5:表達式"(?<=d 4 )d+(?=d4)"在匹配"1234567890123456" 時,將匹配除了前 4個數字和后4個數字之外的中間8個數字。由于JScript.RegExp不支持反向預搜索,因此,本條舉例不能夠進行演示。很多其他的引擎可以支持

31、反向預搜索,比如:Java1.4以上的java.util.regex 包,.NET中System.Text.RegularExpressions命名空間,以及本站推薦的最簡單易用的DEELX正則引擎。3 .其他通用規(guī)則還有一些在各個正則表達式引擎之間比較通用的規(guī)則,在前面的講解過程中沒有提到。3.1 表達式中,可以使用 “xXX" 和"uXXXX"表示一個字符("X"表示一個十六進制數)形式字符范圍xXX編號在0 255 范圍的字符,比如:空格可以使用“x20" 表示uXXXX任何字符可以使用"u" 再加上其編號的

32、4位十六進制數表示,比如:"u4E2D"3.2 在表達式"歸","d" , "w" , "b"表示特殊意義的同時,對應的大寫字母表示相反的意義表達式可匹配S匹配所有非空白字符("s"可匹配各個空白字符)D匹配所有的非數字字符W匹配所有的字母、數字、下劃線以外的字符B匹配非單詞邊界,即左右兩邊都是"w"范圍或者左右兩邊都不是"w"范圍時的字符縫隙3.3 在表達式中有特殊意義,需要添加 ""才能匹配該字符本身的字符匯總字

33、符說明匹配輸入字符串的開始位置。要匹配"A" 字符本身,請使用"A"$匹配輸入字符串的結尾位置。要匹配"$"字符本身,請使用"$"()標記一個子表達式的開始和結束位置。要匹配小括號,請使用“(" 和")"用來自定義能夠匹配多種字符的表達式。要匹配中括號,請使用 "" 和""修飾匹配次數的符號。要匹配大括號,請使用"" 和"".匹配除了換行符(n )以外的任意一個字符。要匹配小數點本身,請使用".&

34、quot;?修飾匹配次數為0次或1次。要匹配"?"字符本身,請使用"?"+修飾匹配次數為至少 1次。要匹配"+"字符本身,請使用"+"*修飾匹配次數為0次或任意次。要匹配 "*" 字符本身,請使用"*"|左右兩邊表達式之間"或"關系。匹配"|" 本身,請使用"|"3.4 括號"()"內的子表達式,如果希望匹配結果不進行記錄供以后使用,可以使用"(?:xxxxx)" 格式舉傷J

35、1:表達式"(?:(w)1 )+"匹配"a bbccdd efg" 時,結果是"bbccdd"。括號"(?:)"范圍的匹配結果不進行記錄,因此"(w)" 使用"1" 來引用。3.5 常用的表達式屬性設置簡介:Ignorecase , Singleline , Multiline , Global表達式屬性說明Ignorecase默認情況下,表達式中的字母是要區(qū)分大小寫的。配置為Ignorecase弓1擎,把"大小寫"概念延伸至UNICODE范圍的大小寫???/p>

36、使匹配時不區(qū)分大小寫。有的表達式Singleline默認情況下,小數點行符在內的所有字符。"."匹配除了換行符(n )以外的字符。配置為Singleline可使小數點可匹配包括換Multiline默認情況下,表達式 必“和"$"只匹配字符串的開始 和結尾 位置。如:(1) xxxxxxxxx n(3) xxxxxxxxx 配置為Multiline 可以使"A"匹配外,還可以匹配換行符之后,下一行開始前配外,還可以匹配換行符之前,一行結束的位置。的位置,使"$"匹Global主要在將表達式用來替換時起作用,配置為Gl

37、obal表示替換所有的匹配。4 .其他提示4.1 如果想要了解高級的正則引擎還支持那些復雜的正則語法,可參見本站DEELX正則引擎的說明文檔。4.2 如果要要求表達式所匹配的內容是整個字符串,而不是從字符串中找一部分,那么可以在表達式的首尾使用"A" 和"$",比如:"Ad+$"要求整個字符串只有數字。4.3 如果要求匹配的內容是一個完整的單詞,而不會是單詞的一部分,那么在表達式首尾使用"b",比如:使用"b(if | while | else | void | int )b"來匹配程序中的關鍵

38、字。4.4 表達式不要匹配空字符串。否則會一直得到匹配成功,而結果什么都沒有匹配到。比如:準備寫一個匹配"123"、"123."、"123.5"、".5"這幾種形式的表達式時,整數、小數點、小數數字都可以省略,但是不要將表達式寫成:"d*. ?d*”,因為如果什么都沒有,這個表達式也可以匹配成功。更好的寫法是:"d +. ?d * | . d +"4.5 能匹配空字符串的子匹配不要循環(huán)無限次。如果括號內的子表達式中的每一部分都可以匹配0 次,而這個括號整體又可以匹配無限次,那么情況可能

39、比上一條所說的更嚴重,匹配過程中可能死循環(huán)。雖然現在有些正則表達式引擎已經通過辦法避免了這種情況出現死循環(huán)了,比如.NET 的正則表達式,但是我們仍然應該盡量避免出現這種情況。如果我們在寫表達式時遇到了死循環(huán),也可以從這一點入手,查找一下是否是本條所說的原因。4.6 合理選擇貪婪模式與非貪婪模式,參見話題討論。4.7 或 "|" 的左右兩邊,對某個字符最好只有一邊可以匹配,這樣,不會因為"|" 兩邊的表達式因為交換位置而有所不同。行為零次或多次匹配前面的字符或子表達式。*等效于0, 。一次或多次匹配前面的字符或子表達式。+等效于1, 。零次或一次匹配前面

40、的字符或子表達式。等效于0,1 。當 ? 緊隨任何其他限定符( *、 +、 ?、 n、 n, 或 n, m)之后時, 匹配模式是非貪婪的。非貪婪模式匹配搜索到的、盡可能少的字符串,而默認的貪婪模式匹配搜索到的、盡可能多的字符串。匹配搜索字符串開始的位置。如果標志中包括m (多行搜索)字符,A還將匹配n或r后面的位置。示例zo* 與"z"和"zoo"匹配。zo+ 與"zo"和"zoo”匹配,但與"z"不匹配。zo? 與"z"和"zo"匹配,但與"zoo&qu

41、ot;不匹配。o+? 只與“ oooo ”中的單個“o ”匹配,而o+ 與所有“o ”匹配。do(es)? 與"do"或"does"中的"do"匹配。Ad3 與搜索字符串開始處的3 個數字匹配。如果將 A 用作括號表達式中的第一個字符,則會對字符集求反。匹配搜索字符串結尾的位置。如果標志中包括 m (多行$搜索)字符,A 還將匹配n 或 r 前面的位置。匹配除換行符n 之外的任何單個字符。若要匹配包括.n 在內的任意字符,請使用諸如sS 之類的模式。標記括號表達式的開始和結尾。標記限定符表達式的開始和結尾。標記子表達式的開始和結尾。可

42、以保存子表達式以備將來()之用。|指示在兩個或多個項之間進行選擇。表示 JScript 中的文本正則表達式模式的開始或結/尾。 在第二個“ / ”后添加單字符標志可以指定搜索行為。Aabc 與除 a、 b 和 c 以外的任何字符匹配。d3$ 與搜索字符串結尾處的3 個數字匹配。a.c 與“ abc ”、“a1c ”和“a-c ”匹配。1-4 與“ 1 ”、“ 2”、“3”或“4 ”匹配。AaAeEiIoOuU 與任何非元音字符匹配。a2,3A(d)與 "aa" 和 "aaa" 匹配。與“A0”至« A9”匹配。保存該數字以備將來之用。z|foo

43、d 與 " z” 或 “food ” 匹配。 (z|f)ood 與“ zood/abc/gi”或“food ”匹配。是與“abc ”匹配的JScript 文本正則表達式。g (全局)標志指定查找模式的所有匹配項,i (忽略大小寫)標志使搜索不區(qū)分大小寫。將下一字符標記為特殊字符、文本、反向引用或八進制轉義n 與換行符匹配。( 與“(”匹配。 與 符?!?"匹配。大多數特殊字符在括號表達式內出現時失去它們的意義,并表示普通字符。有關更多信息,請參見 匹配字符的列表中的“括號表達式中的字符”。元字符下表包含了多字符元字符的列表以及它們在正則表達式中的行為元字符b示例與一個字邊界

44、匹配;即字與空格間的位置。erb 與 “never” 中的的“er”不匹配?!?er”匹配,但與“ verb ” 中B非邊界字匹配。erB 與 “ verb ” 中的的“er”不匹配。“ er”匹配,但與“ never ” 中數字字符匹配。在搜索字符串"12 345”中,d2與“12” 和“ 34”d匹配。 d 與“ 1”、“2”、“3”、“4” 和“ 5”等效于 0-9。匹配。非數字字符匹配。D等效于 A0-9。D+ 與“abc123 def ”中的“ abc”和“def”匹配。w與以下任意字符匹配:A-Z、a-z、0-9和下劃線。等效于A-Za-z0-9。在搜索字符串“ The

45、quick brown fox”“The”、 “ quick “、 “ brown” 泳口 “ fox中,w+ 與”匹配。W與除A-Z、 a-z、 0-9和下劃線以外的任意字符匹配。等效于FA-Za-zO-9。在搜索字符串“ The quick brown fox”和所有空格匹配。中,W+與xyz字符集。與任何一個指定字符匹配。abc 與 “plain ” 中的 “ a” 匹配。Axyz反向字符集。與未指定的任何字符匹配。Aabc 與 “plain ” 中的 “ p”、 “ l ”、匹配。i 和 na-z字符范圍。匹配指定范圍內的任何字符。a-z 與 “a” 到 “z”配。范圍內的任何小寫字母

46、字符匹A a-z反向字符范圍。與不在指定范圍內的任何字符匹配。Aa-z與不在范圍一a”到“z”內的任何字符匹配。 n正好匹配 n次。 n是非負整數。o2 與"Bob"中的"的兩個“ o”匹配。o”不匹配,但與“ food ” 中至少匹配 n 次。 n 是非負整數。 n,* 與 0, 相等。o2,與"Bob"中的“ o”不匹配,但與“ foooood ”中的所有“o”匹配+與 1, 相等 n, m負整數,其中空格。n <= m。逗號和數字之間不能有? 與0,1相等。與模匹配并保存匹配項。您可以從由JScript匹配至少n 次,至多m 次。 n 和 m 是非(模 )(?: 模式)中的 exec Method 返回的數組元素中檢索保存的匹配項。 若要匹配括號字符( ) , 請使用 “ ( ”

溫馨提示

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

評論

0/150

提交評論