資源描述:
《正則表達(dá)式綜合學(xué)習(xí)筆記》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、正則表達(dá)式學(xué)習(xí)總結(jié)1----------------Wpxxsyzx老師作品http://club.excelhome.net/thread-750695-1-1.html1、正則表達(dá)式能干什么呢???你肯定用過(guò)excel的“查找”、“替換”功能。正則表達(dá)式也可以對(duì)字符串進(jìn)行特定的復(fù)雜查找和替換,但它比“查找”和“替換”功能強(qiáng)大的多的多。??正在看藍(lán)橋玄霜版主的字典帖,選了其中的兩個(gè)例子(附件中的例A和例B),你看到的第一反應(yīng)是用字典去解決,例A和例B使用正則表達(dá)式也很好的解決了問(wèn)題。(給出這兩個(gè)例子不是說(shuō)正則表達(dá)式比字典好,只是借此體會(huì)正則
2、表達(dá)式的強(qiáng)大功能)例1、有如下一組電話號(hào)碼,如何改變成右側(cè)的樣式。(020)12345678????020-12345678(021)32145678????021-32145678(0371)45678129????0371-45678129(0392)1234567????0392-1234567(010)21458965????010-21458965(0393)45987636????0393-45987636(0372)87654321????0372-87654321你想到用查找—替換功能解決的方法了嗎?利用正則表達(dá)式很容易實(shí)現(xiàn)。
3、PrivateSubCommandButton1_Click()DimregEXAsNewRegExp‘定義一個(gè)正則表達(dá)式對(duì)象regEX.Pattern="((d{3,4}))(d{7,8})"‘設(shè)置正則表達(dá)式Fori=1To7??Range("c"&i)=regEX.Replace(Range("a"&i),"$1-$2")NextEndSub2、什么是正則表達(dá)式???簡(jiǎn)單的說(shuō),正則表達(dá)式就是一個(gè)由一組具有特殊含義的字符組成的字符串,(如例中的"((d{3,4}))(d{7,8})"),這些有特殊含義的字符設(shè)置了一些條件,并
4、通過(guò)regEX.Pattern="((d{3,4}))(d{7,8})"這一句告訴查找引擎,按照它規(guī)定的條件查找符合要求的字符串。再看一個(gè)簡(jiǎn)單的例子:例2,把字符串“這有一本關(guān)于VBA的書(shū),它在第二個(gè)書(shū)柜里”里的書(shū)換為“book”。PrivateSubCommandButton2_Click()DimregEXAsNewRegExpregEX.Global=True‘設(shè)置查找返回全部匹配regEX.IgnoreCase=FALSE‘設(shè)置查找不區(qū)分大小寫(xiě)regEX.Pattern="書(shū)"Range("a12")=regEX.Replac
5、e("這有一本關(guān)于VBA的書(shū),它在第二個(gè)書(shū)柜里","book")EndSub3、正則表達(dá)式的工作原理??我們需要找出目標(biāo)字符串中所有的“書(shū)”字,根據(jù)我們的要求寫(xiě)出正則表達(dá)式:”書(shū)”,通過(guò)regEX.Pattern="書(shū)"這句把我們的要求以正則表達(dá)式的形式告訴查找引擎(本例中正則表達(dá)式規(guī)定的條件很簡(jiǎn)單:符合要求的字符串必須是字符“書(shū)”),查找引擎從目標(biāo)字符串的第一個(gè)字符開(kāi)始查找,找到符合正則表達(dá)式要求的字符串后就存儲(chǔ)起來(lái),然后繼續(xù)向后查找直到結(jié)束。最后,把找到的所有符合要求的字符串以集合的形式返回。(關(guān)于返回的集合后面會(huì)詳細(xì)介紹)4、正則表達(dá)式
6、對(duì)象有四個(gè)屬性:Global:設(shè)置為true表示查找引擎返回找到的所有符合要求的子字符串,設(shè)置為false表示只返回找到的第一個(gè)符合要求的子字符串。IgnoreCase:設(shè)置為true表示查找時(shí)忽略大小寫(xiě),設(shè)置為FALSE表示查找時(shí)區(qū)分大小寫(xiě)。Pattern:存放正則表達(dá)式,如例2一樣regEX.Pattern="書(shū)"MultiLine:不用多說(shuō)了吧。5、正則表達(dá)式對(duì)象有三個(gè)方法:Execute方法:語(yǔ)法object.Execute(sourcestringasstring)asstring,object為你定義的正則表達(dá)式對(duì)象(如:regE
7、X),參數(shù)sourcestring為要對(duì)其進(jìn)行查找的字符串(如例中的"這有一本關(guān)于VBA的書(shū),它在第二個(gè)書(shū)柜里")。Execute方法查找并返回符合要求的字符串的集合,相當(dāng)于使用“查找”功能。Test方法:語(yǔ)法object.Execute(sourcestringasstring)asstring,其結(jié)構(gòu)和用法和Execute方法一樣,它和Execute方法唯一不同的是Test方法只進(jìn)行測(cè)試查找,而不會(huì)返回符合要求的子字符串集合。一般用它判斷是否可以找到符合要求的字符串。Replace方法:語(yǔ)法object.Replace(sourcestr
8、ingasstring,Replace)asstring,object為你定義的正則表達(dá)式對(duì)象,參數(shù)sourcestring為要對(duì)其進(jìn)行查找的字符串,參數(shù)Repla