Javascript 从字符串中提取路径/文件名的正则表达式

Javascript 从字符串中提取路径/文件名的正则表达式,javascript,regex,Javascript,Regex,给定一个输入字符串,我希望以指定的格式从中获取输出:filename;路径 对于输入字符串: /vob/TEST/.@@/main/ch_vobsweb/1/VOBSWeb/main/ch_vobsweb/4/VobsWebUI/main/ch_vobsweb/2/VaultWeb/main/ch_vobsweb/2/func.js 我希望输出字符串: func.js;VOBSWeb/VosWebUI/VaultWeb/func.js 文件名列在整个字符串的末尾,其路径应该使用每个数字值后面

给定一个输入字符串,我希望以指定的格式从中获取输出:
filename;路径

对于输入字符串:

/vob/TEST/.@@/main/ch_vobsweb/1/VOBSWeb/main/ch_vobsweb/4/VobsWebUI/main/ch_vobsweb/2/VaultWeb/main/ch_vobsweb/2/func.js
我希望输出字符串:

func.js;VOBSWeb/VosWebUI/VaultWeb/func.js
文件名列在整个字符串的末尾,其路径应该使用每个数字值后面的字符进行剥离(例如,
/1/VOBSWeb/
,然后是
/4/VobsWebUI
,然后是
/2/vaultWeb

相关:
这与前面的一个C#问题有关,但这次使用的是JavaScript:


没关系,蒂姆在早些时候的帖子中已经回答了这个问题

首先,从字符串中删除所有“无趣的东西”

搜索
*?/\d+/([^/]+/?)
并将所有内容替换为
$1

在C#中:
resultString=Regex.Replace(subjectString,@“*?/\d++/([^/]+/?),“$1”)

在JavaScript中:
result=subject.replace(/.\/\d+\/([^\/]+\/?)/g,“$1”)

这将把字符串转换为

VOBSWeb/VobsWebUI/VaultWeb/func.js


其次,将文件名复制到字符串的前面

搜索
(.*/)([^/]+)$
并替换为
$2$1$2

C#:
resultString=Regex.Replace(subjectString,(.*/)([^/]+)$,“$2;$1$2”)

JavaScript:
result=subject.replace(/(.*\/)([^\/]+)$/g,“$2;$1$2”)

这将把上一个操作的结果转换为

func.js;VOBSWeb/VobsWebUI/VaultWeb/func.js


没关系,蒂姆在早些时候的帖子中已经回答了这个问题

首先,从字符串中删除所有“无趣的东西”

搜索
*?/\d+/([^/]+/?)
并将所有内容替换为
$1

在C#中:
resultString=Regex.Replace(subjectString,@“*?/\d++/([^/]+/?),“$1”)

在JavaScript中:
result=subject.replace(/.\/\d+\/([^\/]+\/?)/g,“$1”)

这将把字符串转换为

VOBSWeb/VobsWebUI/VaultWeb/func.js


其次,将文件名复制到字符串的前面

搜索
(.*/)([^/]+)$
并替换为
$2$1$2

C#:
resultString=Regex.Replace(subjectString,(.*/)([^/]+)$,“$2;$1$2”)

JavaScript:
result=subject.replace(/(.*\/)([^\/]+)$/g,“$2;$1$2”)

这将把上一个操作的结果转换为

func.js;VOBSWeb/VobsWebUI/VaultWeb/func.js


由于我几乎完成了输入,以下是压缩版本:

result = subject.replace(/\/?(?:[^\/\d]+\/)+\d+\/([^\/]+\/?)/g, "$1")
                .replace(/^.*\/([^\/]+)$/, "$1;$0");

由于我几乎完成了输入,以下是压缩版本:

result = subject.replace(/\/?(?:[^\/\d]+\/)+\d+\/([^\/]+\/?)/g, "$1")
                .replace(/^.*\/([^\/]+)$/, "$1;$0");

尝试了/[0-9]/[a-zA-Z]*但返回的是数值。我需要解释同样的问题。@Raj-如果您有更多详细信息,请编辑并添加您的问题,而不是将其作为评论发布。@Raj,在过去两天中,您似乎已经问了三次同样的问题。第二个甚至与第一个合并。投票以欺骗的方式结束。如果你继续这种行为,你很可能会被停职(这不是一种威胁,特别是因为这种权力不是我可以使用的,我只是让你知道一个可能的结果)。如果你感觉到了,这绝对不是一个重复。这是使用Javascript所需的帮助。我可能在寻找展示信息的最佳方式。流程是从C#到Web页面。我可以选择在ASP.net中执行此操作,也可以选择在浏览器级别执行此操作,因此我提出了这个问题。我不想垃圾邮件问题,这肯定是一个讨厌的问题,但如果不理解将同一问题发布在不同标签中的必要性,这意味着什么。抱歉,我没有注意到标签已更改。尝试了/[0-9]/[a-zA-Z]*但返回的是数值。我需要解释同样的问题。@Raj-如果您有更多详细信息,请编辑并添加您的问题,而不是将其作为评论发布。@Raj,在过去两天中,您似乎已经问了三次同样的问题。第二个甚至与第一个合并。投票以欺骗的方式结束。如果你继续这种行为,你很可能会被停职(这不是一种威胁,特别是因为这种权力不是我可以使用的,我只是让你知道一个可能的结果)。如果你感觉到了,这绝对不是一个重复。这是使用Javascript所需的帮助。我可能在寻找展示信息的最佳方式。流程是从C#到Web页面。我可以选择在ASP.net中执行此操作,也可以选择在浏览器级别执行此操作,因此我提出了这个问题。我不想垃圾邮件的问题,这肯定是一个讨厌的,但没有理解的需要,张贴在不同的标签相同的问题意味着什么。抱歉,我没有注意到标签已经改变。