正则表达式从网络路径中选择文件夹

时间:2017-09-25 20:03:44

标签: regex

我试图获得正则表达式来选择网络路径的一部分

\\server.env.com\Target\Test1\Test2\final1\final2\final3\final4\final5

我需要在Target之后跳过两个文件夹,然后从上面获取其余的路径。所以正则表达式应该在这种情况下给我final1\final2\final3\final4\final5。在final5之后,路径可以有更多级别的文件夹。所以正则表达式适用于任意数量的文件夹。

当我使用后面的浏览器时,浏览器显示它不受支持,因此无法使用它。

2 个答案:

答案 0 :(得分:0)

使用正则表达式

var str1="path \\server.env.com\\Target\\Test1\\Test2\\final1\\final2\\final3\\final4\\final5"
//  "path \server.env.com\Target\Test1\Test2\final1\final2\final3\final4\final5"

str1.match( /([^\\]*\\){5}(.*)/ )[2]
//  "final1\final2\final3\final4\final5"

基于对“决赛”之前的正斜杠数量进行测试

或者,使用拆分

var arr = str1.split("\\")
arr.splice(0,5)
var result = arr.join("\\")

result // "final1\final2\final3\final4\final5"

答案 1 :(得分:0)

关注此帖:How do you use a variable in a regular expression?

创建一个正则表达式,替换Target的所有内容,然后再替换另外两个子目录



var path = "\\server.env.com\\Target\\Test1\\Test2\\final1\\final2\\final3\\final4\\final5"
console.log("Path is: " + path)
var target = "Target"
var regex = "^.*" + target + "\\\\(?:[^\\\\]+\\\\){2}"
console.log("Regex is: "+ regex)
var re = new RegExp(regex, "mg")
var extracted = path.replace(re, "")
console.log("Extraction is: " + extracted)