正则表达式从路径中删除文件名

时间:2014-09-11 20:20:11

标签: regex filenames filepath

如何设计一个可以从路径中删除文件名的RegEx脚本?诀窍是,路径上有各种各样的扳手投入工作。

路径可以包含:

1: "Folder1/Folder2/Folder3.1234/folder4.5678/ApplesandOranges.txt","MoreInfo","EvenMoreInfo"
2: "Folder1/Folder2/Folder3.1234/folder4.91011/","MoreInfo","EvenMoreInfo"

甚至

3: "Folder1/Folder2/Folder3.1234/folder4.5678/ApplesandOranges.zip?CatsAndDogs.txt","MoreInfo","EvenMoreInfo"

在案例1和案例3中,我想最终:

Folder1/Folder2/Folder3.1234/folder4.5678/

但是,第二个以

返回是可以接受的
Folder1/Folder2/Folder3.1234/folder4.5678/ApplesandOranges.zip

虽然不是首选。

在案例2中,它完全跳过该行,因为没有文件名。

有什么建议吗?

通过文本编辑器使用标准RegEx。没有java使用等等。

注意:路径只是一个例子。可能有50个文件夹。它不是一直只有4个文件夹

3 个答案:

答案 0 :(得分:17)

您可以使用这样的简单正则表达式:

(.*\/).*

<强> Working demo

enter image description here

如您所见,我们的想法是使用(.*\/)将所有内容捕获到最后一个斜杠,并丢弃其余的.*。检查上面的替换部分。

答案 1 :(得分:1)

您可以使用它。

[^\/]+$

'$'匹配字符串末尾的位置,而'[^ /] +'匹配任何不包含'/'的字符串。

答案 2 :(得分:0)

这个怎么样?

@"^.*[\/]"

output result