0

我有这个网址:

C:\Projects\Ensure_Solution\GD_EServices_Web\App_WebReferences\GD_Eservices_Web_Service\GD_Eservices_Web_Service.wsdl
C:\Projects\Ensure_Solution\GD_EServices_Web\App_WebReferences\GD_Eservices_Web_Service\GD_Eservices_Web_Service.wsdl

我想获取 wsdl 文件名(没有前导斜杠)

我已经成功使用了 2 个解决方案:

\\[^\\]+$

\\(.(?!\\))+$

但这会返回前导斜杠:http ://regexr.com?32lvi

在此处输入图像描述

如何增强我的正则表达式返回文件?

4

5 回答 5

1

这应该可行[^\\]+$ 但是对于您的情况,我更喜欢string.split('/').pop()(javascript)或array_pop(split('/', string))(对于php,我不知道您使用的语言)而不是正则表达式。

于 2012-11-01T11:09:39.233 回答
1

尝试使用负前瞻(?!\\)(.(?!\\))+$

于 2012-11-01T11:10:36.887 回答
1

您只需要排除正则表达式中的前导斜杠。

var path = 'C:\\Projects\\Ensure_Solution\\GD_EServices_Web\\App_WebReferences\\GD_Eservices_Web_Service\\GD_Eservices_Web_Service.wsdl';
console.log(path.match(/[^\\]+$/));

你可以在没有正则表达式的情况下获得它,使用split,并使用 获得最后一个元素pop

console.log(path.split('\\').pop());
于 2012-11-01T11:13:03.830 回答
0

试试这个

\\[^\\]+$

注意:这意味着尝试只使用一个前导反斜杠

于 2012-11-01T11:08:15.063 回答
0

这应该这样做:

([\w\d_-]*)\.?[^\\\/]*$

这个线程有一些javascript的例子。

或者,您可以在“\”上拆分字符串以创建一个数组并获取数组中的最后一个。

于 2012-11-01T11:10:41.257 回答