用 javascript 中的超链接地址替换本地地址的正则表达式模式

Regex pattern to replace a local address with a hyperlink address in javascript

我有一个字符串

var str = "C:\Program Files\nodejs\node_modules"

我想用超链接部分“https://”替换“C:\Program Files\”部分,这样最终结果是

"https://nodejs/node_modules"

用正则表达式替换 slase 的第一步我已经用

replace(/\\/gi,"/")

于是就变成了

"C:/Program Files/nodejs/node_modules"

因此,最终结果的正则表达式面临困难。

您可能会使用 2 个捕获组:

^[A-Z]+:\(?:[^\\n]*\)*([^\\n]+)\([^\\n]+)$
  • ^ 字符串开头
  • [A-Z]+:\ 匹配 1+ 个字符 A-Z :\
  • (?:[^\\n]*\)* 除了 \ 之外的任何字符的可选重复,然后匹配 \
  • ([^\\n]+) 捕获 组 1 匹配 \
  • 以外的可选字符
  • \ 匹配 \
  • ([^\\n]+) 捕获 组 2 与捕获组 1
  • 相同
  • $ 字符串结束

并替换为

https:///

看到一个regex demo

const regex = /^[A-Z]:\(?:[^\\n]*\)*([^\\n]+)\([^\\n]+)$/gm;
const str = `C:\Program Files\nodejs\node_modules`;
const result = str.replace(regex, `https:///`);
console.log(result);

查找

^[A-Z]:\/[^\/]+(.*)

替换

https:/