Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript RegExp不会返回解析版本号字符串的预期结果_Javascript_Regex_Google Apps Script - Fatal编程技术网

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

Javascript RegExp不会返回解析版本号字符串的预期结果,javascript,regex,google-apps-script,Javascript,Regex,Google Apps Script,我有像这样的文件名 TACO - v3 - something BURRITO - v4.3 Enchilada - v5.1 - something 我想解析出这些甜美的版本(v5.1) 但这只返回第一个\S(因此我得到的是v5而不是v5.1)。我在其他地方读到谷歌应用程序脚本regex不做*或+,这似乎很疯狂,似乎很多人都在使用*而且它对他们有效。我做错了什么 再说一遍,我需要完整的版本号(2或4个字符),不管文件名后面是否有任何内容 var regExp = new RegExp('-

我有像这样的文件名

TACO - v3 - something
BURRITO - v4.3
Enchilada - v5.1 - something
我想解析出这些甜美的版本(v5.1)

但这只返回第一个\S(因此我得到的是v5而不是v5.1)。我在其他地方读到谷歌应用程序脚本regex不做*或+,这似乎很疯狂,似乎很多人都在使用*而且它对他们有效。我做错了什么

再说一遍,我需要完整的版本号(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
墨西哥煎饼-v4.3
Enchilada-v5.1-something`;
const result=data.match(/v\d+(\。\d+)*/g);

控制台日志(结果)
尝试双转义
\S
,我认为您可以省略点
var regExp=new regExp('-(v\\S*))
var regExp = new RegExp('- (v.\S*)\s*');