繁体   English   中英

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

[英]How to to extract a string between two characters?

这些是我的字符串:

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

您只需要捕获组:

 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 

你几乎明白了

_(\d{3})@

您需要对数字进行匹配,否则由于其他下划线,字符串也将被选择。

当然,您的比赛将是\\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); 

尝试这个:

(?<= (?!。* ))(。*)(?= @)

使用lookbehind(?<=)并向前看(?=),以便匹配中不包含“ _”和“ @”。

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

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

希望对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM