正则表达式 命名捕获组

简介: 命名捕获组

示例字符串:release-11-2-10


传统的正则表达式只能进行字符串匹配,比如我们可以用这个正则表达式来匹配上面的字符串。


release-\d*-\d*-\d*

release-11-2-10




但是当我们做一个转换的时候,比如 release-11-2-10 转换成 11.2.10 的时候,匹配就不够用了,这个时候我们可以使用命名捕获组和模板来解决这个问题。


release-\d*-\d*-\d*                               

普通正则表达式


release-(?<major>\d*)-(?<minor>\d*)-(?<version>\d*) 

改为命名捕获组(括号标识匹配到的内容是一个捕获组,下划线的部分标识对捕获组进行命名)


${major}.${minor}.${version}                        

将捕获组内容应用到模板,得到转换后内容。


11.2.10


正则表达式相关帮助文档:https://www.regular-expressions.info/named.html



目录
相关文章
|
2月前
|
Java 索引
正则表达式源码分析--三个常用类--分组、捕获、反向引用--String 类中使用正则表达式的代码示例和图
正则表达式源码分析--三个常用类--分组、捕获、反向引用--String 类中使用正则表达式的代码示例和图
39 0
|
Java PHP Ruby
《正则表达式经典实例(第2版)》——2.11 捕获和命名匹配子串
可能是基于.NET的流行超过了Python的原因,.NET语法似乎成为了其他正则库开发人员更乐于接受的语法。Perl 5.10及更新版本使用的是它,而在Ruby 1.9的Oniguruma引擎中也是如此。
1788 0
|
JavaScript 前端开发 Java
《正则表达式经典实例(第2版)》——2.9 分组和捕获匹配中的子串
创建一个正则表达式,使之匹配yyyy-mm-dd格式的任意日期,并且分别捕获年、月和日。目标是在处理匹配的代码中可以更容易处理这些分别捕获的值。你可以假设目标文本中的所有日期都是合法的。正则表达式不必要考虑去掉像9999-99-99这样的非法数据,因为它们根本不可能出现在目标文本中。
1849 0
|
Java API
Java正则表达式中的捕获组的概念及相关API使用
要弄清这三个方法,首先要弄清Java正则表达式中的捕获组的概念。捕获组也就是Pattern中以括号对“()”分割出的子Pattern。至于为什么要用捕获组呢,主要是为了能找出在一次匹配中你更关心的部分。
991 0
|
JavaScript PHP Python
php正则表达式的分组捕获
经过测试,发现php正则表达式获取分组捕获是从$0开始,而平时工作中JavaScript中的正则是$1..$9   在提取项目代码中的汉字时,因为当时操作速度很快(赶时间),很担心当时.properties的文件{\d}的数字顺序搞错了: 1、可能从{1}开始,而不是从{0}开始 2、可能跳着写了,比如第一个是{0}第二个需要替换的地方却写着{2} 因为使用人工手动操作的,所以这种情况是难以避免,只能说减少误操作。
923 0
|
2月前
|
XML 测试技术 数据库
Python 正则表达式一文通
Python 正则表达式一文通
|
1天前
|
开发者 Python
Python中的正则表达式:re模块详解与实例
Python中的正则表达式:re模块详解与实例
|
1天前
|
数据格式 Python
Python中的正则表达式:基础与应用
Python中的正则表达式:基础与应用
|
23天前
|
人工智能 Python
【Python 30天速成计划】8:正则表达式
【Python 30天速成计划】8:正则表达式
|
24天前
|
Python
Python正则表达式Regular Expression初探
Python正则表达式Regular Expression初探
20 0