用 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:/
我有一个字符串
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:/