需要一些帮助来改进正则表达式



我缺乏正则表达式的经验,我需要一些帮助。我需要提取一个 git 标签。输入字符串如下所示:

6dde3d91f23bff5ab81e91838f19f306b33fe7a8refs/tags/3.4.2
// there is a new line at the end of the string

我需要的字符串部分是3.4.2.这是我的代码:

var pattern = /.*([0-9]{1}.{1}[0-9]{1}.{1}[0-9]{1}).*/ig;
var match = pattern.exec(string);
// match[1] gets what I need

它有效,但是这个正则表达式长得离谱,必须有一种方法可以使其更短。有人可以帮助我吗?

谢谢

您可以将

[0-9]{1}替换为d,如下所示:

/d.d.d$/

$与行尾匹配。

编辑:根据Rob-W的反馈进行了更新

不需要正则表达式,只需拆分字符串即可。

var tag ="6dde3d91f23bff5ab81e91838f19f306b33fe7a8refs/tags/3.4.2";​​​​​
console.log(tag.split('/')[2]);​ // results in 3.4.2

{1}隐含在每个语句中。把这些拿出来会缩短你的表情。

不过,J08691的答案是正确的:只需将其字符串拆分即可。

我得到了你的结果d..*

不能比这短。

在这里测试

这是最短的一个>>

[0-9.]+$

最新更新