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

标签 javascript regex

我缺乏使用正则表达式的经验,需要一些帮助。 我需要提取一个 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 更新的反馈

关于javascript - 需要一些帮助来改进正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12923652/

相关文章:

javascript - 如何在 animate 中将 "+="赋值运算符与变量一起使用?

javascript - AABB 碰撞解决滑边

用于标识符(字母、数字和下划线)的 Java 正则表达式

regex - Perl - 用于查找和替换不属于字符实体的&符号的正则表达式

java - 如何将正则表达式与字符和某些符号的任意组合匹配( '% and %' 之间的一行中的两个破折号除外)

javascript - 将标题添加到图像 slider

javascript - 有没有测试 Exchange 连接的方法?

javascript - 如何访问嵌套 Web 组件的祖先?

java - 正则表达式删除特殊字符

mysql - 查找 SnowFlake 中特定列中包含非 ASCII 的所有行