国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

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

2019-11-26 14:33:34
字體:
來源:轉載
供稿:網友

很多正則引擎都支持命名分組,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為正則的完整匹配結果。

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

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}")); //將 年-月-日 形式的日期改為 日-月-年 形式 

輸出結果

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 馆陶县| 怀来县| 神木县| 嘉黎县| 都江堰市| 淮南市| 丹东市| 通化市| 九龙城区| 田林县| 苍南县| 军事| 亚东县| 南召县| 承德市| 昌江| 湖州市| 苏州市| 浮梁县| 绍兴县| 桦甸市| 安仁县| 阳山县| 湖口县| 略阳县| 色达县| 山西省| 昌图县| 乐昌市| 滦平县| 凯里市| 铜山县| 黄浦区| 阿尔山市| 二连浩特市| 永仁县| 集贤县| 古蔺县| 余江县| 阳高县| 绥德县|