Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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 如何使用正则表达式获取特定字符后的所有数字_Javascript_Regex - Fatal编程技术网

Javascript 如何使用正则表达式获取特定字符后的所有数字

Javascript 如何使用正则表达式获取特定字符后的所有数字,javascript,regex,Javascript,Regex,我有以下字符串: @eur99.def.mark.ocal:7342s/mweb/web style.s.git#v4.2.0 我怎样才能只得到以下数字4,2,0 基本上我需要破折号(#)后面的所有数字 我尝试过这个(使用look-behind模式),但没有成功 正则表达式: (?您可以使用indexOf来获取# var str=“@eur99.def.mark.ocal:7342s/mweb/web style.s.git#v4.2.0”; var num=str.substring(str

我有以下字符串:

@eur99.def.mark.ocal:7342s/mweb/web style.s.git#v4.2.0

我怎样才能只得到以下数字4,2,0

基本上我需要破折号(#)后面的所有数字

我尝试过这个(使用look-behind模式),但没有成功

正则表达式:


(?您可以使用indexOf来获取#

var str=“@eur99.def.mark.ocal:7342s/mweb/web style.s.git#v4.2.0”;

var num=str.substring(str.indexOf(“#”)+“#v”.length);
直接法:

var regex=/\d/g,
str='“web”:“@eur99.def.mark.ocal:7342s/mweb/web style.s.git#v4.2.0”,
sl=str.substr(str.indexOf('#v')),//所需的切片
结果=[];
while((m=regex.exec(sl))!==null){
//这是避免具有零宽度匹配的无限循环所必需的
if(m.index==regex.lastIndex){
regex.lastIndex++;
}
结果:push(m[0]);
}

console.log(result);
使用括号记住匹配项,您可以在结果数组中访问它们(从1索引,整个匹配项存储在0中)

const str='“web”:“@eur99.def.mark.ocal:7342s/mweb/web style.s.git#v4.22.514”
常量regExp=/#v([0-9]+)\([0-9]+)\([0-9]+)/
const res=regExp.exec(str)

console.log(res[1],res[2],res[3])//4 22 514
是的,是的,您可以忽略web字符串!为什么不能使用JS字符串方法?请注意XY问题:您不能使用(JavaScript)正则表达式提取无限数量的组,但是如果只有三组数字,则可以使用此正则表达式:
/\D*(\D+)\D+(\D+)(\D+)\D+)(\D+)/
,并且数字组将位于前三个匹配组中(可以使用提取)是,我现在看到了。tnx用于代码否,只是regex…我需要regex。。。