说我有这个网址:
git+https://github.com/ORESoftware/npp.git
我要删除与“ http”不匹配的前几个字符。我也想删除.git,但不确定如何可靠地做到这一点。
所以我想得到这个字符串:
https://github.com/ORESoftware/npp
作为一次总体对话,不确定该网址与以下内容有何不同:
www.github.com/ORESoftware/npp
答案 0 :(得分:2)
您可以尝试以下方法:
let s = 'git+https://github.com/ORESoftware/npp.git';
console.log(s.replace(/^.*?(http.*?)\.git$/, '$1'))
输出:
https://github.com/ORESoftware/npp
此正则表达式的工作方式如下:
^.*?
是从字符串开头到下一个匹配的元素(在本例中为(http.*?)
捕获组)的非贪婪匹配。
(http.*?)
是一个捕获组,捕获从http
到下一个匹配项的所有内容(因为.*?
再次是非贪婪的)
\.git$
与字符串的结尾.git
相匹配。
替换字符串$1
仅用捕获组的内容替换原始字符串的内容。在这种情况下,从http
到.git
之前的最后一个字符都是如此。