我有这个字符串:
194.44.176.116:8080
我想在':'之后采取一切,但不要采取:本身。怎么做? 这是我使用的东西,但它抓住数字和':',我不想要
var portRe = /(?<=:)\d{2,5}$/gi;
顺便说一句,我在NodeJs应用程序中使用它。
答案 0 :(得分:1)
你的正则表达式可以获得:
和结尾之间的所有内容:
/[^:]+$/
但是我们知道,端口是一个数字,你可以检查字符串末尾的数字:
/[0-9]+$/
请注意,这不会检查是否有:
,因此只返回最后一位数字。如果您确定自己有一个字符串,那么这两个字符串是最容易理解的极简主义解决方案。
否则请参考其他答案进行前瞻/后视或使用非捕获/捕获组。
答案 1 :(得分:0)
这里的一般策略是使用捕获组来隔离您真正想要匹配的内容:
/.*:(\d{2,5})/gi
然后访问您在第一个捕获组中捕获的内容。
var myString = "194.44.176.116:8080";
var myRegexp = /.*:(\d{2,5})/gi;
var match = myRegexp.exec(myString);
console.log(match[1]);
&#13;