如何在两个字符之间提取字符串?

时间:2016-03-22 06:33:00

标签: javascript regex

这些是我的字符串:

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 _(.*)@,但没有机会。

4 个答案:

答案 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(?< =)并向前看(?=)以便" _"和" @"不包括在比赛中。

(?!。* )获得" _"的最后一次出现。

(。*)匹配" _"的最后一次出现之间的所有内容。和" @"。

我希望它有所帮助。