java正則表達式學習筆記之命名捕獲
很多正則引擎都支持命名分組,java是在java7中才引入這個特性,語法與.Net類似(.Net允許同一表達式出現(xiàn)名字相同的分組,java不允許)。
命名分組很好理解,就是給分組進行命名。下面簡單演示一下java中如何使用以及注意事項。
1.正則中定義名為NAME的分組
(?<NAME>X)
這里X為我們要匹配的內(nèi)容,注意,在這個命名不能重復,名字也不能以數(shù)字開頭!
2.反向引用NAME組所匹配到的內(nèi)容
\k<NAME>
注意,反向引用是針對組所匹配到的內(nèi)容,而非組的表達式。
3.替換中,引用組NAME中捕獲到的字符串
${NAME}
4.獲取NAME組捕獲的字符串
group(String NAME)
注意:也可以使用序號對命名捕獲進行引用,序號從1開始,0為正則的完整匹配結(jié)果。
下面用一個簡單的正則來分別獲取年月日為例:
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
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助。
- java正則表達式獲取指定HTML標簽的指定屬性值且替換的方法
- Java正則表達式處理特殊字符轉(zhuǎn)義的方法
- Java 正則表達式匹配模式(貪婪型、勉強型、占有型)
- 詳解Java判斷是否是整數(shù),小數(shù)或?qū)崝?shù)的正則表達式
- Java常用正則表達式驗證工具類RegexUtils.java
- Java使用正則表達式對注冊頁面進行驗證功能實現(xiàn)
- java正則表達式四種常用的處理方式(匹配、分割、替代、獲?。?/a>
- java常用正則表達式
- JAVA正則表達式 Pattern和Matcher
- Java 正則表達式學習總結(jié)和一些小例子
- java正則表達式提取數(shù)字的方法實例
- Java基于正則表達式獲取指定HTML標簽指定屬性值的方法
相關(guān)文章
Springboot mybatis plus druid多數(shù)據(jù)源解決方案 dynamic-datasource的使用詳
這篇文章主要介紹了Springboot mybatis plus druid多數(shù)據(jù)源解決方案 dynamic-datasource的使用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11Service層異常拋到Controller層處理還是直接處理問題分析
這篇文章主要為大家介紹了Service層異常拋到Controller層處理還是直接處理的問題分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09Mybatis-plus foreach拼接字符串查詢無數(shù)據(jù)返回問題
這篇文章主要介紹了Mybatis-plus foreach拼接字符串查詢無數(shù)據(jù)返回問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03Java連接 JDBC基礎(chǔ)知識(操作數(shù)據(jù)庫:增刪改查)
這篇文章主要介紹了Java連接 JDBC基礎(chǔ)知識,包括操作數(shù)據(jù)庫之增刪改查操作,需要的朋友可以參考下2021-04-04IDEA的默認快捷鍵設(shè)置與Eclipse的常用快捷鍵的設(shè)置方法
這篇文章主要介紹了IDEA的默認快捷鍵設(shè)置與Eclipse的常用快捷鍵的設(shè)置方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01詳解Java如何實現(xiàn)一個BlockingQueue
這篇文章主要為大家詳細介紹了Java如何實現(xiàn)一個BlockingQueue阻塞隊列,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2023-06-06spring boot啟動時mybatis報循環(huán)依賴的錯誤(推薦)
今天小編抽時間給大家分享spring boot啟動時mybatis報循環(huán)依賴的錯誤,非常不錯,具有參考借鑒價值,需要的朋友參考下吧2017-12-12