假设我有以下字符串:这是一个非常随机的字符串,其中包含版本号 3.2.1,我只想提取版本号。这是我不想提取的第二个版本号:5.7.8,只是为了踢球,这是第三个版本号 9.0.1是否可以仅提取第一个版本号,即3.2.1使用一个正则表达式?我正在使用 JavaScript,虽然我已经能够通过搜索围绕版本号的两个字符串使用两个单独的正则表达式来提取它,然后在它们之间搜索版本号,但我还没有找到如何合并它们成一。重要的是要注意,该字符串包含许多版本号,它们在我想要提取的版本号之前和之后。但是,我要提取的版本号始终位于单词number和之间looking。任何帮助深表感谢。
1 回答

翻过高山走不出你
TA贡献1875条经验 获得超3个赞
v
不添加 /g 标志基本上只返回第一个匹配项!当没有匹配项时,它返回 null。您可以创建非捕获组以仅获取匹配中所需的值
let string = "This is a very random string which contains the version number 3.2.1 and I’m looking to extract just the version number. This is a second version number that I don’t want to extract: 5.7.8, and just for kicks, this is a third version number 9.0.1";
result = string.match(/number(?:.*)(\d.\d.\d)(?:.*)looking/);
if(result) {
console.log(result[1]);
}
添加回答
举报
0/150
提交
取消