第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么捕獲組中的標(biāo)志會刪除該組?

為什么捕獲組中的標(biāo)志會刪除該組?

慕運(yùn)維8079593 2021-08-04 10:37:29
在下面的代碼中,(?i:hot)是一個捕獲組?;蛘咧辽偎鼞?yīng)該是......它匹配表達(dá)式并使用字符。但是,當(dāng)我嘗試獲取組數(shù)時,它返回 0。Pattern pattern = Pattern.compile("(?i:hot)");Matcher matcher = pattern.matcher("hot diggity dog");while (matcher.find()) {    int groupCount = matcher.groupCount(); // returns 0    for (int i = 0; i <= groupCount; i++) {        System.out.printf("%d. %s%n", i, matcher.group(i));    }}括號確實(shí)捕獲。如你所見,如果我們這樣做matcher.replaceAll("cold")它會返回“cold diggity dog”我希望 (?i:hot) 等價于 ((?i)hot),但事實(shí)并非如此。后一種情況是捕獲組。這不是Java RegEx Matcher.groupCount 返回 0的重復(fù),因?yàn)樵谀莻€問題中,確實(shí)沒有捕獲組,因此 groupCount 正確返回 0。但是在我的情況下,這確實(shí)應(yīng)該被視為捕獲組,因?yàn)樗_實(shí)執(zhí)行捕獲!
查看完整描述

3 回答

?
楊__羊羊

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個贊

它在文檔中是正確的:

(?idmsux-idmsux: X )   X,作為具有給定標(biāo)志 idmsux on - off的非捕獲組

如果你想要一個捕獲組,只需將它包裝在另一組括號中:

((?i:hot))


查看完整回答
反對 回復(fù) 2021-08-04
?
慕斯709654

TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個贊

我希望(?i:hot)相當(dāng)于((?i)hot),但事實(shí)并非如此。后一種情況是捕獲組。


一旦看到同一級別的右括號,幾乎所有正則表達(dá)式引擎都會關(guān)閉內(nèi)聯(lián)修飾符。因此,除了捕獲部分之外,以上兩者都是等效的。


第一種語法完全是另一回事。


模式修改跨度

括號不應(yīng)該表示捕獲組或非捕獲組,但它們可以將不同的功能帶入可能捕獲或不捕獲的使用中。緊跟在問號之后的所有左括號對正則表達(dá)式引擎都有特殊含義:


(?...)

標(biāo)志i是一個修飾符。修飾符可以在正則表達(dá)式上下文之外啟用,但一些正則表達(dá)式引擎支持內(nèi)聯(lián)修飾符的語法,這使您能夠在正則表達(dá)式本身內(nèi)啟用它們。因此單詞inline:


(?i)test(?-i)

 ^        ^

 E        D

在另一方面有被稱為另一個類似的語法模式改性跨度:(?modifiers:...)其類似于非捕獲組(?:...)具有某些改性劑之間?和:,并將其應(yīng)用于只以包圍的子表達(dá)式:


(?i:test)

有了這樣說,無論是(?i)test(?-i)和(?i:test)是相等的。此功能應(yīng)該啟用/禁用修飾符。時期。


我們不期望它有更多功能。


查看完整回答
反對 回復(fù) 2021-08-04
  • 3 回答
  • 0 關(guān)注
  • 185 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號