正则表达式 命名捕获组

简介: 命名捕获组

示例字符串: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



目录
相关文章
|
7月前
|
Java 索引
正则表达式源码分析--三个常用类--分组、捕获、反向引用--String 类中使用正则表达式的代码示例和图
正则表达式源码分析--三个常用类--分组、捕获、反向引用--String 类中使用正则表达式的代码示例和图
87 0
|
JavaScript PHP
php正则表达式获取(捕获)组的笔记
@(汗)的确,网络上存在很多这样的内容了,但今天我是来补充内容的,滑稽@(你懂的) 众所周知 ,js中正则表达式()可以来获取匹配到内容,然后用$0 ...来显示
79 0
|
Java PHP Ruby
《正则表达式经典实例(第2版)》——2.11 捕获和命名匹配子串
可能是基于.NET的流行超过了Python的原因,.NET语法似乎成为了其他正则库开发人员更乐于接受的语法。Perl 5.10及更新版本使用的是它,而在Ruby 1.9的Oniguruma引擎中也是如此。
1853 0
|
JavaScript 前端开发 Java
《正则表达式经典实例(第2版)》——2.9 分组和捕获匹配中的子串
创建一个正则表达式,使之匹配yyyy-mm-dd格式的任意日期,并且分别捕获年、月和日。目标是在处理匹配的代码中可以更容易处理这些分别捕获的值。你可以假设目标文本中的所有日期都是合法的。正则表达式不必要考虑去掉像9999-99-99这样的非法数据,因为它们根本不可能出现在目标文本中。
1892 0
|
Java API
Java正则表达式中的捕获组的概念及相关API使用
要弄清这三个方法,首先要弄清Java正则表达式中的捕获组的概念。捕获组也就是Pattern中以括号对“()”分割出的子Pattern。至于为什么要用捕获组呢,主要是为了能找出在一次匹配中你更关心的部分。
1043 0
|
JavaScript PHP Python
php正则表达式的分组捕获
经过测试,发现php正则表达式获取分组捕获是从$0开始,而平时工作中JavaScript中的正则是$1..$9   在提取项目代码中的汉字时,因为当时操作速度很快(赶时间),很担心当时.properties的文件{\d}的数字顺序搞错了: 1、可能从{1}开始,而不是从{0}开始 2、可能跳着写了,比如第一个是{0}第二个需要替换的地方却写着{2} 因为使用人工手动操作的,所以这种情况是难以避免,只能说减少误操作。
956 0
|
6月前
|
数据库 Python
Python网络数据抓取(8):正则表达式
Python网络数据抓取(8):正则表达式
64 2
|
6月前
|
自然语言处理 JavaScript 前端开发
Python高级语法与正则表达式(二)
正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
|
6月前
|
安全 算法 Python
Python高级语法与正则表达式(一)
Python提供了 with 语句的写法,既简单又安全。 文件操作的时候使用with语句可以自动调用关闭文件操作,即使出现异常也会自动关闭文件操作。
|
6月前
|
Python
Python使用正则表达式分割字符串
在Python中,你可以使用re模块的split()函数来根据正则表达式分割字符串。这个函数的工作原理类似于Python内置的str.split()方法,但它允许你使用正则表达式作为分隔符。