自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

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

解決這個(gè)問題的方法是通過給捕獲組命名來(lái)解決,就像Python, PHP, .Net 以及Perl這些語(yǔ)言里的正則表達(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á)式命名捕獲組之后你可以像這樣使用正則式:

  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中實(shí)現(xiàn)正則表達(dá)式命名捕獲組之后怎么樣呢?是不是眼睛一亮呢?

【編輯推薦】

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

2009-03-12 10:15:15

正則表達(dá)式JDK7Java

2009-09-16 17:38:49

正則表達(dá)式匹配任意字符

2009-09-16 18:19:34

正則表達(dá)式組

2009-08-20 13:44:07

C#正則表達(dá)式

2009-06-15 17:24:59

Groovy正則表達(dá)式

2010-03-25 18:25:36

Python正則表達(dá)式

2012-05-08 13:29:01

VB

2018-09-27 15:25:08

正則表達(dá)式前端

2020-09-04 09:16:04

Python正則表達(dá)式虛擬機(jī)

2009-09-16 12:41:42

Perl正則表達(dá)式

2024-09-14 09:18:14

Python正則表達(dá)式

2009-09-16 14:32:43

PHP正則表達(dá)式替換

2009-09-16 13:14:10

Ereg正則表達(dá)式

2011-08-23 17:46:09

LUA正則表達(dá)式模式

2020-11-04 09:23:57

Python

2021-01-27 11:34:19

Python正則表達(dá)式字符串

2009-02-18 09:48:20

正則表達(dá)式Java教程

2011-06-02 12:34:16

正則表達(dá)式

2017-05-12 10:47:45

Linux正則表達(dá)式程序基礎(chǔ)

2019-07-17 15:45:47

正則表達(dá)式字符串前端
點(diǎn)贊
收藏

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