一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java正則表達式學習筆記之命名捕獲

java正則表達式學習筆記之命名捕獲

2020-04-01 14:11蘇1216 JAVA教程

這篇文章主要為大家詳細介紹了java正則表達式中的命名捕獲,感興趣的小伙伴們可以參考一下

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

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

2.反向引用NAME組所匹配到的內容
\k<NAME>
注意,反向引用是針對組所匹配到的內容,而非組的表達式。

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

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

下面用一個簡單的正則來分別獲取年月日為例:

java正則表達式學習筆記之命名捕獲

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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}")); //將 年-月-日 形式的日期改為 日-月-年 形式

輸出結果

?
1
2
3
4
5
6
7
year: 2015
month: 10
day: 26
year: 2015
month: 10
day: 26
26-10-2015

以上就是本文的全部內容,希望對大家的學習有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 波多野结衣黑人系列在线观看 | 男人含玉势出嫁束器 | 国产精品毛片久久久久久久 | 亚洲香蕉网久久综合影院3p | aⅴ导航站 | 日韩在线视频免费观看 | 阿v天堂2020 α片免费 | 国产香蕉97碰碰在线视频 | 亚洲欧美优优色在线影院 | 国产最新进精品视频 | 好深快点再快点好爽视频 | 国产精品激情综合久久 | vod国产成人精品视频 | 九九精品视频在线免费观看 | 国产高清在线精品一区二区三区 | 超级碰碰青草免费视频92 | 色老板在线视频观看 | 欧美日韩高清观看一区二区 | 处女私拍 | 日韩一区二区三区四区五区 | 日韩一区二区三区精品 | 韩国伊人 | 国产精品久久久久一区二区三区 | 亚洲欧美成人中文在线网站 | 男男18视频免费网站 | 欧美一区二区三区在线观看不卡 | 99撸| 天堂漫画破解版 | 单身男女韩剧在线看 | 爱欲荡漾在线观看 | 深夜视频免费看 | 欧美日韩国产另类一区二区三区 | 午夜伦伦电影理论片费看 | 午夜一区二区免费视频 | 欧美日韩精品亚洲精品v18 | 男同桌脱我奶罩吸我奶作文 | 2020韩国三级理论在线观看 | 国产成人v爽在线免播放观看 | 久久久精品免费免费直播 | 男人使劲躁女人小视频 | 96萝莉|