[英]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.