Regex 将major.minor.revision-SNAPSHOT与正则表达式匹配

Regex 将major.minor.revision-SNAPSHOT与正则表达式匹配,regex,Regex,我是regex新手,我想要一个与此模式匹配的: major.minor.revision-SNAPSHOT 其中,主要、次要和修订是一个或多个数字的数字 示例: `1.2.0-SNAPSHOT` must match `165.2.23-SNAPSHOT` must match `165.2.20` must not match `165.2.20-` must not match 我试过这个: (\d+)\.(\d+)\.(\d+)[-](-SNAPSHOT)?.* 但它并没有像预期的那

我是regex新手,我想要一个与此模式匹配的:

major.minor.revision-SNAPSHOT
其中,主要、次要和修订是一个或多个数字的数字

示例:

`1.2.0-SNAPSHOT` must match
`165.2.23-SNAPSHOT` must match
`165.2.20` must not match
`165.2.20-` must not match
我试过这个:

(\d+)\.(\d+)\.(\d+)[-](-SNAPSHOT)?.*

但它并没有像预期的那样工作。

解决了。右边的正则表达式是
^\d+\.\d+\.\d+-SNAPSHOT$

试试这个:
\d*[.]\d*[-]SNAPSHOT
-执行需要~0毫秒

只需将锚点
^
$
添加到regex<代码>^(\d+)\(\d+)\(\d+[-](-SNAPSHOT)?.*$。如果您不想删除匹配捕获组,则可以删除
^\d+\.\d+\.\d+[-]-SNAPSHOT?*$
^\d+\.\d+-SNAPSHOT$
正则表达式中只有两个问题:1<代码>[-],将其删除。2. <代码>(-SNAPSHOT)?应变为
-SNAPSHOT