新聞中心
在JDK7 b50中將實(shí)現(xiàn)正則表達(dá)式命名捕獲組是眾望所歸,目前Java的正則表達(dá)式不支持命名捕獲組功能,只能通過捕獲組的計(jì)數(shù)來訪問捕獲組。當(dāng)正則表達(dá)式比較復(fù)雜的時(shí)候,里面含有大量的捕獲組和非捕獲組,通過從左至右數(shù)括號(hào)來得知捕獲組的計(jì)數(shù)也是一件很煩人的事情;而且這樣做代碼的可讀性也不好,當(dāng)正則表達(dá)式需要修改的時(shí)候也會(huì)改變里面捕獲組的計(jì)數(shù)。

平陰網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)于2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
解決這個(gè)問題的方法是通過給捕獲組命名來解決,就像Python, PHP, .Net 以及Perl這些語言里的正則表達(dá)式一樣。這個(gè)特性javaer已經(jīng)期待了很多年,而現(xiàn)在我們終于在jdk7 b50得到了實(shí)現(xiàn)。
新引入的命名捕獲組支持如下:
◆(?X) to define a named group NAME"
◆\k to backref a named group "NAME"
◆<$ to reference to captured group in matcher's replacement str
◆group(String NAME) to return the captured input subsequence by the given "named group"
在JDK7 b50中實(shí)現(xiàn)正則表達(dá)式命名捕獲組之后你可以像這樣使用正則式:
- String pStr = "0x(?\\p{XDigit}{1,4})\\s++u\\+(?\\p{XDigit}{4})(?:\\s++)?";
- Matcher m = Pattern.compile(pStr).matcher(INPUTTEXT);
- if (m.matches()) {
- int bs = Integer.valueOf(m.group("bytes"), 16);
- int c = Integer.valueOf(m.group("char"), 16);
- System.out.printf("[%x] -> [%04x]%n", bs, c);
- }
- String pStr = "0x(?\\p{XDigit}{1,4})\\s++u\\+(?\\p{XDigit}{4})(?:\\s++)?";
- Matcher m = Pattern.compile(pStr).matcher(INPUTTEXT);
- if (m.matches()) {
- int bs = Integer.valueOf(m.group("bytes"), 16);
- int c = Integer.valueOf(m.group("char"), 16);
- System.out.printf("[%x] -> [%04x]%n", bs, c);
- }
或者
- System.out.println("0x1234 u+5678".replaceFirst(pStr, "u+$ 0x$"));
在JDK7 b50中實(shí)現(xiàn)正則表達(dá)式命名捕獲組之后怎么樣呢?是不是眼睛一亮呢?
【編輯推薦】
- 實(shí)現(xiàn)Java中對(duì)象比較的兩個(gè)方法
- 初學(xué)Java多線程:使用Synchronized塊同步方法
- 初學(xué)Java多線程:從線程返回?cái)?shù)據(jù)的兩種方法
- Java中兩個(gè)特殊變量this和super 的使用
- 3.6.3 this關(guān)鍵字和構(gòu)造方法的調(diào)用
分享標(biāo)題:在JDK7 b50中將實(shí)現(xiàn)正則表達(dá)式命名捕獲組
文章源于:http://www.dlmjj.cn/article/ccejiic.html


咨詢
建站咨詢
