国产探花免费观看_亚洲丰满少妇自慰呻吟_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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 利辛县| 乌兰察布市| 远安县| 布尔津县| 交城县| 乌审旗| 集贤县| 商南县| 莱芜市| 彭山县| 建湖县| 临邑县| 梅州市| 黑水县| 清新县| 莱西市| 富裕县| 普宁市| 莫力| 民乐县| 定边县| 广宁县| 阳原县| 罗山县| 岗巴县| 江阴市| 泸溪县| 万年县| 湄潭县| 陵水| 临猗县| 南投市| 伊吾县| 巴青县| 喜德县| 汶上县| 南华县| 安平县| 海兴县| 堆龙德庆县| 红安县|