>
學(xué)校機(jī)構(gòu) >
福州博洋軟件開(kāi)發(fā)與測(cè)試培訓(xùn)學(xué)校 >
學(xué)習(xí)資訊>
Java數(shù)量修飾詞的理解 java資訊
Java數(shù)量修飾詞的理解 java資訊
136 2017-05-11
正則表達(dá)式對(duì)于數(shù)量限定符如?,+,*,{n,m}的匹配默認(rèn)是貪婪模式,比如:
a.*b匹配acbab的結(jié)果是acbab而不是acb
正則表達(dá)式支持懶惰模式,也就是在數(shù)量限定符后加一個(gè)數(shù)量修飾詞(quantifier),用問(wèn)號(hào)表示,比如:
a.*?b匹配acbab的結(jié)果是acb而不是acbab2cto
而語(yǔ)言在正則表達(dá)式中支持一種Possessive數(shù)量修飾詞,用加號(hào)表示。其字面意思是像貪婪模式一樣匹配,但不回溯。這到底是什么意思呢?其實(shí)這和匹配算法相關(guān),比如:
在貪婪模式下,正則表達(dá)式a.*b在匹配acbac時(shí),在匹配成功第一個(gè)字符a后,匹配算法會(huì)繼續(xù)往后讀取字符a之后的字符來(lái)匹配.*,這時(shí)貪婪模式就起作用了,a后面的cbac都能匹配.*,但當(dāng)匹配算法繼續(xù)往后讀取字符時(shí),發(fā)現(xiàn)已經(jīng)沒(méi)有字符可讀了,無(wú)法匹配正則表達(dá)式中的b了,于是就回溯一個(gè)字符,看c是否能匹配b,不能,繼續(xù)回溯,直到回溯到b時(shí),才匹配到了acb。而a.*+b在匹配時(shí)是不會(huì)回溯的,也就是說(shuō)當(dāng)貪婪地讀到最后一個(gè)字符時(shí)發(fā)現(xiàn)無(wú)有字符與b匹配了,就認(rèn)為匹配失敗了。
再舉幾個(gè)例子
(ab)*+a匹配ababacd時(shí)可以匹配到ababa,因?yàn)閮蓚€(gè)ab之后沒(méi)有ab了,無(wú)法貪婪
a?+a匹配aaaaa時(shí)會(huì)匹配到aa,但a++a和a{0,10}+a卻會(huì)匹配失敗
博洋教育今日就業(yè)明星:王榮生福建三元達(dá)軟件有限公司擔(dān)任java工程師
王榮生:福建信息職業(yè)技術(shù)學(xué)院軟件工程專(zhuān)業(yè),大專(zhuān)學(xué)歷。在博洋教育參加java軟件項(xiàng)目實(shí)訓(xùn),該生學(xué)習(xí)態(tài)度端正,有比較好的學(xué)習(xí)心態(tài),會(huì)主動(dòng)請(qǐng)教老師同學(xué)。畢業(yè)后經(jīng)過(guò)就業(yè)部老師的推薦,現(xiàn)在成功入職福建三元達(dá)軟件有限公司。
班級(jí)名稱(chēng)
CN1305脫產(chǎn)班
班級(jí)性質(zhì)
脫產(chǎn)班
開(kāi)班時(shí)間
2013年8月12日
上課地點(diǎn)
上課方式
脫產(chǎn)
目前狀態(tài)
熱招
掃一掃
獲取更多福利
獵學(xué)網(wǎng)企業(yè)微信
獵學(xué)網(wǎng)訂閱號(hào)
獵學(xué)網(wǎng)服務(wù)號(hào)