@之后的正则表达式匹配,但不包括和之前/但不包括

时间:2017-10-12 18:35:49

标签: javascript regex

我是一个正则表达式的菜鸟,我试了很长时间。

case1: postgres://123:123@localhost/123
case2: postgres://123:123@integration/123

我正在尝试找到在@之后和/

之前匹配的正则表达式

对于案例1将给我localhost,案例2将给我集成

谢谢!

2 个答案:

答案 0 :(得分:0)

只需处理匹配即可删除分隔符。由于JavaScript正则表达式不支持前瞻,因此您无法做其他事情。这应该做到。

var strs = ["postgres://123:123@localhost/123", "postgres://123:123@integration/123"];
strs.forEach(str => console.log(str.match(/(?=@)[^\/]+/)[0].substr(1)));

这样做是为了返回包含@的匹配项,然后处理匹配项以删除分隔符。

在执行此操作之前,您可能需要检查是否存在任何匹配项以避免例外。

答案 1 :(得分:0)

var test = [
    'postgres://123:123@localhost/123',
    'postgres://123:123@integration/123'
];
console.log(test.map(function (a) {
  return a.match(/@(\w+)/)[1];
}));