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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Java字符串替換-非捕獲組捕獲

Java字符串替換-非捕獲組捕獲

GCT1015 2023-06-21 14:57:55
我有以下 Java 代碼:String?initial?=?"Phone?number:?[194-582-9412]"; System.out.println(initial.replaceAll("\\d{3}\\-\\d{3}(?=\\-\\d{4})","XXX-XXX")); System.out.println(initial.replaceAll("\\d{3}\\-\\d{3}(?:\\-\\d{4})","XXX-XXX"));產(chǎn)生輸出:電話號(hào)碼:[XXX-XXX-9412]電話號(hào)碼:[XXX-XXX]我的邏輯是找到 3 位數(shù)字、破折號(hào)、3 位數(shù)字(捕獲到這一點(diǎn))、破折號(hào)和四位數(shù)字(非捕獲到這一點(diǎn))。,以開(kāi)頭的前瞻組?=是非捕獲的。根據(jù)Pattern Javadoc,以開(kāi)頭的組?:也是非捕獲組。我期望兩個(gè)正則表達(dá)式產(chǎn)生相同的輸出,Phone number: [XXX-XXX-9412].?但是,具有非捕獲組的正則表達(dá)式(?:\\-\\d{4})似乎捕獲了整個(gè)電話號(hào)碼并替換它。為什么會(huì)這樣?
查看完整描述

1 回答

?
呼喚遠(yuǎn)方

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個(gè)贊

您實(shí)際上可以使用捕獲組來(lái)做您想做的事。在這里它捕獲您想要保留的部分并替換整個(gè)字符串。這$1是對(duì)捕獲組的反向引用。

 System.out.println(
            initial.replaceAll("\\d{3}-\\d{3}(\\-\\d{4})", "XXX-XXX$1"));

我假設(shè)您意識(shí)到如果regex不匹配,則返回原始字符串而不做任何更改。


查看完整回答
反對(duì) 回復(fù) 2023-06-21
  • 1 回答
  • 0 關(guān)注
  • 125 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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