如何提取两个字符之间的字符串?
这是我的字符串:如何提取两个字符之间的字符串?
[email protected]
[email protected]
[email protected]
我想要做的就是提取180,从这些字符串360和480。
我试过这个RegEx _(.*)@
但没机会。
你只是想要捕获组:
var str = '[email protected]';
var substr = str.match(/_(\d*)@/);
if (substr) {
substr = substr[1];
console.log(substr);
}
//outputs 180
如果不匹配,它也会抛出一个'TypeError'(不能读取'null'的属性1)。 – Marty
参见编辑 - 如果怀疑字符串将包含substr,只需先检查匹配项,然后选择捕获组。 – sideroxylon
你几乎得到了它
_(\d{3})@
你需要做的数字匹配,否则该字符串将还得到因为其他下划线的选择。
Ofcourse你的对手将是\1
试试这个
var str = "[email protected]";
var matches = str.match(/_\[email protected]/).map(function(value){return value.substring(1,value.length-1);});
document.body.innerHTML += JSON.stringify(matches,0,4);
试试这个:
(? < = (?!。*))(。*)(?= @)
使用回顾后(?< =)和向前看(?=),使 “_” 和 “@” 不包括在内在比赛中。
(?!。*)得到“_”的最后一次出现。
(。*)匹配最后一次出现“_”和“@”之间的所有内容。
我希望它有帮助。
也许这样:'_(\ d *)@' - 它总是一个数字字符串? – sideroxylon
是的。但是这个也包括_和@个字符。如果你也可以摆脱他们,为什么你不发布答案? :) – scaryguy