偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

在JDK7 b50中將實現(xiàn)正則表達式命名捕獲組

開發(fā) 后端
在JDK7 b50中將實現(xiàn)正則表達式命名捕獲組這是很多Javaer期待的事情那么在JDK7 b50中將實現(xiàn)正則表達式命名捕獲組具體是哪些呢?本文將向你簡單介紹。

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

解決這個問題的方法是通過給捕獲組命名來解決,就像Python, PHP, .Net 以及Perl這些語言里的正則表達式一樣。這個特性javaer已經(jīng)期待了很多年,而現(xiàn)在我們終于在jdk7 b50得到了實現(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中實現(xiàn)正則表達式命名捕獲組之后你可以像這樣使用正則式:

  1. String pStr = "0x(?\\p{XDigit}{1,4})\\s++u\\+(?\\p{XDigit}{4})(?:\\s++)?";  
  2.  
  3. Matcher m = Pattern.compile(pStr).matcher(INPUTTEXT);  
  4.  
  5. if (m.matches()) {  
  6.  
  7. int bs = Integer.valueOf(m.group("bytes"), 16);  
  8.  
  9. int c = Integer.valueOf(m.group("char"), 16);  
  10.  
  11. System.out.printf("[%x] -> [%04x]%n", bs, c);  
  12.  
  13. }  
  14.  
  15. String pStr = "0x(?\\p{XDigit}{1,4})\\s++u\\+(?\\p{XDigit}{4})(?:\\s++)?";  
  16.  
  17. Matcher m = Pattern.compile(pStr).matcher(INPUTTEXT);  
  18.  
  19. if (m.matches()) {  
  20.  
  21. int bs = Integer.valueOf(m.group("bytes"), 16);  
  22.  
  23. int c = Integer.valueOf(m.group("char"), 16);  
  24.  
  25. System.out.printf("[%x] -> [%04x]%n", bs, c);  
  26.  

或者

  1. System.out.println("0x1234 u+5678".replaceFirst(pStr, "u+$ 0x$")); 

在JDK7 b50中實現(xiàn)正則表達式命名捕獲組之后怎么樣呢?是不是眼睛一亮呢?

【編輯推薦】

  1. 實現(xiàn)Java中對象比較的兩個方法
  2. 初學(xué)Java多線程:使用Synchronized塊同步方法
  3. 初學(xué)Java多線程:從線程返回數(shù)據(jù)的兩種方法
  4. Java中兩個特殊變量this和super 的使用
  5. 3.6.3 this關(guān)鍵字和構(gòu)造方法的調(diào)用
責(zé)任編輯:仲衡 來源: diyjava
相關(guān)推薦

2009-03-12 10:15:15

正則表達式JDK7Java

2009-09-16 17:38:49

正則表達式匹配任意字符

2009-09-16 18:19:34

正則表達式組

2009-08-20 13:44:07

C#正則表達式

2009-06-15 17:24:59

Groovy正則表達式

2010-03-25 18:25:36

Python正則表達式

2012-05-08 13:29:01

VB

2020-09-04 09:16:04

Python正則表達式虛擬機

2018-09-27 15:25:08

正則表達式前端

2009-09-16 12:41:42

Perl正則表達式

2024-09-14 09:18:14

Python正則表達式

2009-09-16 14:32:43

PHP正則表達式替換

2020-11-04 09:23:57

Python

2009-09-16 13:14:10

Ereg正則表達式

2011-08-23 17:46:09

LUA正則表達式模式

2022-03-28 06:19:14

正則表達式開發(fā)

2009-02-18 09:48:20

正則表達式Java教程

2019-07-17 15:45:47

正則表達式字符串前端

2021-01-27 11:34:19

Python正則表達式字符串

2011-06-02 12:34:16

正則表達式
點贊
收藏

51CTO技術(shù)棧公眾號