欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java正則表達(dá)式學(xué)習(xí)筆記之命名捕獲

 更新時(shí)間:2016年02月19日 14:14:54   作者:蘇1216  
這篇文章主要為大家詳細(xì)介紹了java正則表達(dá)式中的命名捕獲,感興趣的小伙伴們可以參考一下

很多正則引擎都支持命名分組,java是在java7中才引入這個(gè)特性,語(yǔ)法與.Net類似(.Net允許同一表達(dá)式出現(xiàn)名字相同的分組,java不允許)。
命名分組很好理解,就是給分組進(jìn)行命名。下面簡(jiǎn)單演示一下java中如何使用以及注意事項(xiàng)。

1.正則中定義名為NAME的分組
(?<NAME>X)
這里X為我們要匹配的內(nèi)容,注意,在這個(gè)命名不能重復(fù),名字也不能以數(shù)字開頭!

2.反向引用NAME組所匹配到的內(nèi)容
\k<NAME>
注意,反向引用是針對(duì)組所匹配到的內(nèi)容,而非組的表達(dá)式。

3.替換中,引用組NAME中捕獲到的字符串
${NAME}

4.獲取NAME組捕獲的字符串
group(String NAME)
注意:也可以使用序號(hào)對(duì)命名捕獲進(jìn)行引用,序號(hào)從1開始,0為正則的完整匹配結(jié)果。

下面用一個(gè)簡(jiǎn)單的正則來(lái)分別獲取年月日為例:

String s = "2015-10-26"; 
Pattern p = Pattern.compile("(?<year>\\d{4})-(?<month>\\d{2})-(?<day>\\d{2})"); 
Matcher m = p.matcher(s); 
if (m.find()) { 
  System.out.println("year: " + m.group("year")); //年 
  System.out.println("month: " + m.group("month")); //月 
  System.out.println("day: " + m.group("day")); //日 
    
  System.out.println("year: " + m.group(1)); //第一組 
  System.out.println("month: " + m.group(2)); //第二組 
  System.out.println("day: " + m.group(3)); //第三組 
} 
 
System.out.println(s.replaceAll("(?<year>\\d{4})-(?<month>\\d{2})-(?<day>\\d{2})", "${day}-${month}-${year}")); //將 年-月-日 形式的日期改為 日-月-年 形式 

輸出結(jié)果

year: 2015
month: 10
day: 26
year: 2015
month: 10
day: 26
26-10-2015

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。

相關(guān)文章

最新評(píng)論