gpt4 book ai didi

javascript - RegExp 不返回解析版本号字符串的预期结果

转载 作者:行者123 更新时间:2023-11-29 18:42:16 25 4
gpt4 key购买 nike

我有这样的文件名

TACO - v3 - something
BURRITO - v4.3
Enchilada - v5.1 - something

我想解析那些甜蜜的版本 (v5.1)。

    var regExp = new RegExp("- (v.\S*)");
var version = regExp.exec(fileName)[1];

但这只返回第一个\S(所以我得到 v5 而不是 v5.1)。我在其他地方读到谷歌应用程序脚本正则表达式不执行 * 或 +,这看起来很疯狂,而且似乎很多其他人都在使用 * 并且它适用于他们。我做错了什么?

重申,我需要完整的版本号(2 或 4 个字符),无论文件名中是否有任何内容。

var regExp = new RegExp('- (v.\S*)\s*');

也适用于我的正则表达式测试器,但不适用于 GAS。预期结果v5.1,实际结果v5

最佳答案

如果您不使用 \. 对正则表达式中的 . 进行转义,它就会变成一个特殊的通配符,可以匹配任何字符。使用模式 /v\d+(\.\d+)?/,您可以匹配文字 v 后跟一个或多个数字,然后是可选的文字 . 和另一串数字。如果您有 v5.6.2 等版本,您可能希望使用 * 量词使该组匹配零次或多次。

const data = `TACO - v3 - something
BURRITO - v4.3
Enchilada - v5.1 - something`;

const result = data.match(/v\d+(\.\d+)*/g);
console.log(result);

关于javascript - RegExp 不返回解析版本号字符串的预期结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56177468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com