我试图获得正则表达式来选择网络路径的一部分
\\server.env.com\Target\Test1\Test2\final1\final2\final3\final4\final5
我需要在Target之后跳过两个文件夹,然后从上面获取其余的路径。所以正则表达式应该在这种情况下给我final1\final2\final3\final4\final5
。在final5之后,路径可以有更多级别的文件夹。所以正则表达式适用于任意数量的文件夹。
当我使用后面的浏览器时,浏览器显示它不受支持,因此无法使用它。
答案 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)