Javascript 使用正则表达式在两个特定字符串之间匹配版本号
假设我有以下字符串: 这是一个非常随机的字符串,其中包含版本号3.2.1,我希望只提取版本号。这是我不想提取的第二个版本号:5.7.8,只是为了好玩,这是第三个版本号9.0.1 是否可以使用一个正则表达式仅提取第一个版本号,即3.2.1?我使用的是JavaScript,虽然我已经能够通过搜索围绕版本号的两个字符串,然后在它们之间搜索版本号来使用两个单独的正则表达式来提取它,但我还没有找到如何将它们合并为一个 需要注意的重要一点是,该字符串包含许多版本号,它们位于我要提取的版本号之前和之后。然而,我要提取的版本号总是位于单词number和looking之间 非常感谢您的帮助Javascript 使用正则表达式在两个特定字符串之间匹配版本号,javascript,regex,Javascript,Regex,假设我有以下字符串: 这是一个非常随机的字符串,其中包含版本号3.2.1,我希望只提取版本号。这是我不想提取的第二个版本号:5.7.8,只是为了好玩,这是第三个版本号9.0.1 是否可以使用一个正则表达式仅提取第一个版本号,即3.2.1?我使用的是JavaScript,虽然我已经能够通过搜索围绕版本号的两个字符串,然后在它们之间搜索版本号来使用两个单独的正则表达式来提取它,但我还没有找到如何将它们合并为一个 需要注意的重要一点是,该字符串包含许多版本号,它们位于我要提取的版本号之前和之后。然而,
谢谢没有添加/g标志基本上只是返回第一个匹配!如果没有匹配项,则返回null。 您可以创建非捕获组以仅获取匹配中所需的值 let string=这是一个非常随机的字符串,其中包含版本号3.2.1,我希望只提取版本号。这是我不想提取的第二个版本号:5.7.8,只是为了好玩,这是第三个版本号9.0.1; 结果=string.match/number?:.*\d.\d?:.*looking/; ifresult{ 控制台。日志结果[1];
}你的问题不清楚-除了第一个版本号之外,第一个版本号与其他版本号的区别是什么?@不重要,谢谢你的回答。很抱歉,不够清晰。第一个版本号始终位于上面示例中的两个特定字符串(number和looking)之间。除了改变的版本号,整个字符串都是常量。是的,但是OP并不总是在文本中查找第一个,而是第一个位于其他两个单词之间。很抱歉,我说得不够清楚。我已经编辑了我的原始帖子。@不重要,我已经更新了答案