正则表达式 - 获取fileName?

时间:2012-11-01 11:04:54

标签: javascript regex

我有这个网址:

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文件名(没有前导斜杠)

我已经成功完成了两个解决方案:

\\[^\\]+$

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

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

enter image description here

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

5 个答案:

答案 0 :(得分:1)

这应该有效[^\\]+$ 但对于你的情况,我更喜欢像string.split('/').pop()(javascript)或array_pop(split('/', string))(对于php,我不知道你使用的语言)而不是regexp。

答案 1 :(得分:1)

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

答案 2 :(得分: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());

答案 3 :(得分:0)

试试这个

\\[^\\]+$

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

答案 4 :(得分:0)

这应该这样做:

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

This thread有一些javascript示例。

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