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

 更新时间:2016年02月19日 14:14:54   作者:苏1216  
这篇文章主要为大家详细介绍了java正则表达式中的命名捕获,感兴趣的小伙伴们可以参考一下

很多正则引擎都支持命名分组,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

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

相关文章

  • 详解java平台解析协议相关备忘

    详解java平台解析协议相关备忘

    这篇文章主要介绍了详解java平台解析协议相关备忘,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • 浅谈在Java中使用Callable、Future进行并行编程

    浅谈在Java中使用Callable、Future进行并行编程

    这篇文章主要介绍了浅谈在Java中使用Callable、Future进行并行编程,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • Spring Bean配置方式总结

    Spring Bean配置方式总结

    定义Spring Bcan的3种方式分别是:基于XML 的方式配置、基于注解扫播方式配置、基于元数据类的配置,本文就通过代码示例给大家详细讲讲这三种配置方式,需要的朋友可以参考下
    2023-12-12
  • 如何更优雅地获取spring boot yml中的值

    如何更优雅地获取spring boot yml中的值

    这篇文章主要给大家介绍了关于如何更优雅地获取spring boot yml中值的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用spring boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • java 百度手写文字识别接口配置代码

    java 百度手写文字识别接口配置代码

    本文通过实例代码给大家介绍了java 百度手写文字识别接口配置方法,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2022-01-01
  • 详解springboot项目docker部署实践

    详解springboot项目docker部署实践

    这篇文章主要介绍了详解springboot项目docker部署实践,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • Idea为java程序添加启动参数(含:VM options、Program arguments、Environment variable)

    Idea为java程序添加启动参数(含:VM options、Program arguments、Environme

    设置启动参数的意义就是当启动程序时,程序会优先读取idea的配置参数,这样就可以不用修改配置文件,下面这篇文章主要给大家介绍了关于Idea为java程序添加启动参数(含:VM options、Program arguments、Environment variable)的相关资料,需要的朋友可以参考下
    2022-12-12
  • 如何提高java代码的重用性

    如何提高java代码的重用性

    在本篇文章中小编给各位分享了关于如何提高java代码的重用性的相关知识点内容,有需要的朋友们参考下。
    2019-07-07
  • java文件操作代码片断实例实现统计文件中字母出现的个数功能

    java文件操作代码片断实例实现统计文件中字母出现的个数功能

    本文介绍java读文件实例,实现统计某一目录下每个文件中出现的字母个数、数字个数、空格个数及行数,除此之外没有其他字符,大家参考使用吧
    2014-01-01
  • Java was started but returned exit code=13问题解决案例详解

    Java was started but returned exit code=13问题解决案例详解

    这篇文章主要介绍了Java was started but returned exit code=13问题解决案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09

最新评论