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

下載本文檔

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

文檔簡(jiǎn)介

1、現(xiàn)在JDK1.4里有了自己的正則表達(dá)式API包,JAVA程序員可以免去找第三方提供的正則表達(dá)式庫(kù)的周折了,我們現(xiàn)在就馬上來(lái)了解一下這個(gè)SUN提供的遲來(lái)恩物對(duì)我來(lái)說(shuō)確實(shí)如此。1.簡(jiǎn)介:java.util.regex是一個(gè)用正則表達(dá)式所訂制的模式來(lái)對(duì)字符串進(jìn)行匹配工作的類庫(kù)包。它包括兩個(gè)類:Pattern和MatcherPattern一個(gè)Pattern是一個(gè)正則表達(dá)式經(jīng)編譯后的表現(xiàn)模式。Matcher一個(gè)Matcher對(duì)象是一個(gè)狀態(tài)機(jī)器,它

2、依據(jù)Pattern對(duì)象做為匹配模式對(duì)字符串展開匹配檢查。首先一個(gè)Pattern實(shí)例訂制了一個(gè)所用語(yǔ)法與PERL的類似的正則表達(dá)式經(jīng)編譯后的模式,然后一個(gè)Matcher實(shí)例在這個(gè)給定的Pattern實(shí)例的模式控制下進(jìn)行字符串的匹配工作。以下我們就分別來(lái)看看這兩個(gè)類:2.Pattern類:Pattern的方法如下:staticPatterncompile(Stringregex)將給定的正則表達(dá)式編譯并賦予給Pattern類staticPa

3、tterncompile(Stringregexintflags)同上,但增加flag參數(shù)的指定,可選的flag參數(shù)包括:CASEINSENSITIVEMULTILINEDOTALLUNICODECASE,CANONEQintflags()返回當(dāng)前Pattern的匹配flag參數(shù).Matchermatcher(Sequenceinput)生成一個(gè)給定命名的Matcher對(duì)象staticbooleanmatches(Stringregex

4、Sequenceinput)編譯給定的正則表達(dá)式并且對(duì)輸入的字串以該正則表達(dá)式為模開展匹配該方法適合于該正則表達(dá)式只會(huì)使用一次的情況,也就是只進(jìn)行一次匹配工作,因?yàn)檫@種情況下并不需要生成一個(gè)Matcher實(shí)例。Stringpattern()返回該P(yáng)atter對(duì)象所編譯的正則表達(dá)式。String[]split(Sequenceinput)將目標(biāo)字符串按照Pattern里所包含的正則表達(dá)式為模進(jìn)行分割。String[]split(Seque

5、nceinputintlimit)作用同上,增加參數(shù)limit目的在于要指定分割的段數(shù),如將limi設(shè)為2,那么目標(biāo)字符串將根據(jù)正則表達(dá)式分為割為兩段。一個(gè)正則表達(dá)式,也就是一串有特定意義的字符,必須首先要編譯成為一個(gè)Pattern類的實(shí)例,這個(gè)Pattern對(duì)象將會(huì)使用matcher()方法來(lái)生成一個(gè)Matcher實(shí)例,接著便可以使用該Matcher實(shí)例以編譯的正則表達(dá)式為基礎(chǔ)對(duì)目標(biāo)字符串進(jìn)行匹配工作,多個(gè)Matcher是可以共用一個(gè)

6、Pattern對(duì)象的?,F(xiàn)在我們先來(lái)看一個(gè)簡(jiǎn)單的例子,再通過分析它來(lái)了解怎樣生成一個(gè)Pattern對(duì)象并且編譯一個(gè)正則表達(dá)式,最后根據(jù)這個(gè)正則表達(dá)式將目標(biāo)字符串進(jìn)行分割:imptjava.util.regex.但是在java.util.regex包里,我們僅需生成一個(gè)Pattern類,直接使用它的compile()方法就可以達(dá)到同樣的效果:Patternp=pile(“[]“)因此似乎java.util.regex的構(gòu)造法比Jakarta

7、O更為簡(jiǎn)潔并容易理解。3.Matcher類:Matcher方法如下:MatcherappendReplacement(StringBuffersbStringreplacement)將當(dāng)前匹配子串替換為指定字符串,并且將替換后的子串以及其之前到上次匹配子串之后的字符串段添加到一個(gè)StringBuffer對(duì)象里。StringBufferappendTail(StringBuffersb)將最后一次匹配工作后剩余的字符串添加到一個(gè)Strin

8、gBuffer對(duì)象里。intend()返回當(dāng)前匹配的子串的最后一個(gè)字符在原目標(biāo)字符串中的索引位置。intend(intgroup)返回與匹配模式里指定的組相匹配的子串最后一個(gè)字符的位置。booleanfind()嘗試在目標(biāo)字符串里查找下一個(gè)匹配子串。booleanfind(intstart)重設(shè)Matcher對(duì)象,并且嘗試在目標(biāo)字符串里從指定的位置開始查找下一個(gè)匹配的子串。Stringgroup()返回當(dāng)前查找而獲得的與組匹配的所有子串

9、內(nèi)容Stringgroup(intgroup)返回當(dāng)前查找而獲得的與指定的組匹配的子串內(nèi)容intgroupCount()返回當(dāng)前查找所獲得的匹配組的數(shù)量。booleanlookingAt()檢測(cè)目標(biāo)字符串是否以匹配的子串起始。booleanmatches()嘗試對(duì)整個(gè)目標(biāo)字符展開匹配檢測(cè),也就是只有整個(gè)目標(biāo)字符串完全匹配時(shí)才返回真值。Patternpattern()返回該Matcher對(duì)象的現(xiàn)有匹配模式,也就是對(duì)應(yīng)的Pattern對(duì)象。

10、StringreplaceAll(Stringreplacement)將目標(biāo)字符串里與既有模式相匹配的子串全部替換為指定的字符串。StringreplaceFirst(Stringreplacement)將目標(biāo)字符串里第一個(gè)與既有模式相匹配的子串替換為指定的字符串。Matcherreset()重設(shè)該Matcher對(duì)象。Matcherreset(Sequenceinput)重設(shè)該Matcher對(duì)象并且指定一個(gè)新的目標(biāo)字符串。intstar

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論