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中执行此操作,也可以选择在浏览器级别执行此操作,因此我提出了这个问题。我不想垃圾邮件的问题,这肯定是一个讨厌的,但没有理解的需要,张贴在不同的标签相同的问题意味着什么。抱歉,我没有注意到标签已经改变。