我是一个正则表达式的菜鸟,我试了很长时间。
case1: postgres://123:123@localhost/123
case2: postgres://123:123@integration/123
我正在尝试找到在@
之后和/
对于案例1将给我localhost,案例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];
}));