java正则表达式学习笔记之命名捕获

所属分类: 软件编程 / java 阅读数: 60
收藏 0 赞 0 分享

很多正则引擎都支持命名分组,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: 2015
month: 10
day: 26
year: 2015
month: 10
day: 26
26-10-2015

以上就是本文的全部内容,希望对大家的学习有所帮助。

更多精彩内容其他人还在看

JavaWeb项目部署到服务器详细步骤详解

这篇文章主要介绍了JavaWeb项目如何部署到服务器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

IDEA基于支付宝小程序搭建springboot项目的详细步骤

这篇文章主要介绍了IDEA基于支付宝小程序搭建springboot项目的详细步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

详解SpringBoot应用服务启动与安全终止

这篇文章主要介绍了SpringBoot应用服务启动与安全终止,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Spring Boot启动及退出加载项的方法

这篇文章主要介绍了Spring Boot启动及退出加载项的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Spring Data Jpa 自动生成表结构的方法示例

这篇文章主要介绍了Spring Data Jpa 自动生成表结构的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

IDEA中osgi的开发应用指南详解

这篇文章主要介绍了IDEA中osgi的开发应用指南详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

详解用maven将dubbo工程打成jar包运行

这篇文章主要介绍了详解用maven将dubbo工程打成jar包运行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

详解Java合并数组的两种实现方式

这篇文章主要介绍了Java合并数组的两种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

使用Jenkins Pipeline自动化构建发布Java项目的方法

这篇文章主要介绍了使用Jenkins Pipeline自动化构建发布Java项目的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

使用Maven配置Spring的方法步骤

这篇文章主要介绍了使用Maven配置Spring的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享
查看更多