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

JDK 7中將支持正則表達(dá)式命名捕獲組

開(kāi)發(fā) 后端
目前Java的正則表達(dá)式不支持命名捕獲組功能,只能通過(guò)捕獲組的計(jì)數(shù)來(lái)訪問(wèn)捕獲組.當(dāng)正則表達(dá)式比較復(fù)雜的時(shí)候,里面含有大量的捕獲組和非捕獲組,通過(guò)從左至右數(shù)括號(hào)來(lái)得知捕獲組的計(jì)數(shù)也是一件很煩人的事情.

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

解決這個(gè)問(wèn)題的方法是通過(guò)給捕獲組命名來(lái)解決,就像Python, PHP, .Net 以及Perl這些語(yǔ)言里的正則表達(dá)式一樣.這個(gè)特性Javaer已經(jīng)期待了很多年,而現(xiàn)在我們終于在JDK7 b50得到了實(shí)現(xiàn).

新引入的命名捕獲組支持如下:

(1) (?X) to define a named group NAME"

(2) \k to backref a named group "NAME"

(3) <$ to reference to captured group in matcher's replacement str

(4) group(String NAME) to return the captured input subsequence by the given "named group"

現(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
27   }

或者

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

【編輯推薦】

  1. Java多線程編程基礎(chǔ)之線程和多線程
  2. Java代碼的靜態(tài)編譯和動(dòng)態(tài)編譯中的問(wèn)題比較
  3. 成為Java高手的25個(gè)學(xué)習(xí)要點(diǎn)
責(zé)任編輯:彭凡 來(lái)源: Javaeye
相關(guān)推薦

2009-07-07 13:18:28

JDK7

2009-09-16 18:19:34

正則表達(dá)式組

2009-08-20 13:44:07

C#正則表達(dá)式

2018-09-27 15:25:08

正則表達(dá)式前端

2020-09-04 09:16:04

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

2024-09-14 09:18:14

Python正則表達(dá)式

2010-03-25 18:25:36

Python正則表達(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á)式字符串前端

2022-03-28 06:19:14

正則表達(dá)式開(kāi)發(fā)

2009-06-15 17:24:59

Groovy正則表達(dá)式

2016-11-10 16:21:22

Java 正則表達(dá)式

2022-01-04 11:35:03

Linux Shel正則表達(dá)式Linux

2023-09-13 08:12:45

點(diǎn)贊
收藏

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