正则表达式在“:”之后取文字,不包括“:”

时间:2017-09-07 11:44:03

标签: node.js regex

我有这个字符串:

194.44.176.116:8080

我想在':'之后采取一切,但不要采取:本身。怎么做? 这是我使用的东西,但它抓住数字和':',我不想要

var portRe = /(?<=:)\d{2,5}$/gi;

顺便说一句,我在NodeJs应用程序中使用它。

2 个答案:

答案 0 :(得分:1)

你的正则表达式可以获得:和结尾之间的所有内容:

/[^:]+$/

但是我们知道,端口是一个数字,你可以检查字符串末尾的数字:

/[0-9]+$/

请注意,这不会检查是否有:,因此只返回最后一位数字。如果您确定自己有一个字符串,那么这两个字符串是最容易理解的极简主义解决方案。

否则请参考其他答案进行前瞻/后视或使用非捕获/捕获组。

答案 1 :(得分:0)

这里的一般策略是使用捕获组来隔离您真正想要匹配的内容:

/.*:(\d{2,5})/gi

然后访问您在第一个捕获组中捕获的内容。

&#13;
&#13;
var myString = "194.44.176.116:8080";
var myRegexp = /.*:(\d{2,5})/gi;
var match = myRegexp.exec(myString);
console.log(match[1]);
&#13;
&#13;
&#13;