java正則表達(dá)式學(xué)習(xí)筆記之命名捕獲
很多正則引擎都支持命名分組,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í)有所幫助。
- java正則表達(dá)式獲取指定HTML標(biāo)簽的指定屬性值且替換的方法
- Java正則表達(dá)式處理特殊字符轉(zhuǎn)義的方法
- Java 正則表達(dá)式匹配模式(貪婪型、勉強(qiáng)型、占有型)
- 詳解Java判斷是否是整數(shù),小數(shù)或?qū)崝?shù)的正則表達(dá)式
- Java常用正則表達(dá)式驗(yàn)證工具類RegexUtils.java
- Java使用正則表達(dá)式對(duì)注冊(cè)頁(yè)面進(jìn)行驗(yàn)證功能實(shí)現(xiàn)
- java正則表達(dá)式四種常用的處理方式(匹配、分割、替代、獲取)
- java常用正則表達(dá)式
- JAVA正則表達(dá)式 Pattern和Matcher
- Java 正則表達(dá)式學(xué)習(xí)總結(jié)和一些小例子
- java正則表達(dá)式提取數(shù)字的方法實(shí)例
- Java基于正則表達(dá)式獲取指定HTML標(biāo)簽指定屬性值的方法
相關(guān)文章
Springboot mybatis plus druid多數(shù)據(jù)源解決方案 dynamic-datasource的使用詳
這篇文章主要介紹了Springboot mybatis plus druid多數(shù)據(jù)源解決方案 dynamic-datasource的使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
Service層異常拋到Controller層處理還是直接處理問題分析
這篇文章主要為大家介紹了Service層異常拋到Controller層處理還是直接處理的問題分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
Mybatis-plus foreach拼接字符串查詢無(wú)數(shù)據(jù)返回問題
這篇文章主要介紹了Mybatis-plus foreach拼接字符串查詢無(wú)數(shù)據(jù)返回問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
Java連接 JDBC基礎(chǔ)知識(shí)(操作數(shù)據(jù)庫(kù):增刪改查)
這篇文章主要介紹了Java連接 JDBC基礎(chǔ)知識(shí),包括操作數(shù)據(jù)庫(kù)之增刪改查操作,需要的朋友可以參考下2021-04-04
IDEA的默認(rèn)快捷鍵設(shè)置與Eclipse的常用快捷鍵的設(shè)置方法
這篇文章主要介紹了IDEA的默認(rèn)快捷鍵設(shè)置與Eclipse的常用快捷鍵的設(shè)置方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
詳解Java如何實(shí)現(xiàn)一個(gè)BlockingQueue
這篇文章主要為大家詳細(xì)介紹了Java如何實(shí)現(xiàn)一個(gè)BlockingQueue阻塞隊(duì)列,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-06-06
spring boot啟動(dòng)時(shí)mybatis報(bào)循環(huán)依賴的錯(cuò)誤(推薦)
今天小編抽時(shí)間給大家分享spring boot啟動(dòng)時(shí)mybatis報(bào)循環(huán)依賴的錯(cuò)誤,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-12-12

