首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >语义版本与正则表达式的匹配

语义版本与正则表达式的匹配
EN

Stack Overflow用户
提问于 2017-11-04 21:34:11
回答 1查看 917关注 0票数 0

我正在尝试将语义版本与regex匹配,其中补丁(或3位数字)是可选的。我有大部分的工作,但最后,可选的数字将无法匹配在我的小组。

示例位于:https://regex101.com/r/ZuitFG/3

我试图与以下版本相匹配:

代码语言:javascript
复制
Release 2.6 Now Live
Release 12.46.30 Now Live
Release 2.6.0 Now Live
Release 2.6.1 Now Live

使用/Release (\d+\.\d+[\.\d]?)/,它只与x.x.匹配,从不包含最后一组数字。我已经重复了几遍关于这个正则表达式所做的解释,但是我无法正确地看到我在做什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-04 22:33:03

[\.\d]?是一个可选的字符类,与.或数字匹配1次或0次。

这就是为什么如果在两个数字序列和点序列之后有一个. +数字序列,则只匹配一个点。

您必须使用构造。在这里,非捕获群似乎是最好的,因为它不会创建任何其他子组:

代码语言:javascript
复制
Release (\d+\.\d+(?:\.\d+)?)
                 ^^^^^^^^^

regex演示

(?:\.\d+)?匹配可选的.序列(1次或0次),然后匹配1+数字。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47115856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档