这些是我的字符串:
there_is_a_string_here_1_480@1111111
there_is_a_string_here_1_360@1111111
there_is_a_string_here_1_180@1111111
我想要做的是从这些字符串中提取180,360和480.
我试过这个RegEx _(.*)@
,但没有机会。
答案 0 :(得分:2)
您只需要捕获组:
var str = 'there_is_a_string_here_1_180@1111111';
var substr = str.match(/_(\d*)@/);
if (substr) {
substr = substr[1];
console.log(substr);
}
//outputs 180
答案 1 :(得分:1)
你几乎得到了它
_(\d{3})@
你需要对数字进行匹配,否则字符串也会因为另一个下划线而被选中。
当然,你的比赛将在\1
答案 2 :(得分:1)
试试这个
var str = "there_is_a_string_here_1_480@1111111";
var matches = str.match(/_\d+@/).map(function(value){return value.substring(1,value.length-1);});
document.body.innerHTML += JSON.stringify(matches,0,4);

答案 3 :(得分:0)
试试这个:
(小于?!= (* ))(。*)(?= @)
使用lookbehind(?< =)并向前看(?=)以便" _"和" @"不包括在比赛中。
(?!。* )获得" _"的最后一次出现。
(。*)匹配" _"的最后一次出现之间的所有内容。和" @"。
我希望它有所帮助。