正则表达式-提取文件路径

时间:2018-06-20 13:20:54

标签: c# regex

我需要能够从该字符串中提取完整的文件路径(文件扩展名后无需任何内容):

$/FilePath/FilePath/KeepsGoing/Folder/Script.sql (CS: 123456)

这种情况下的简单解决方案可能适用于这种情况,但是它仅限于具有3个字符的文件扩展名:

(\$.*\..{3})

但是,当文件包含多个点时,我发现了这个问题:

$/FilePath/FilePath/File.Setup.Task.exe.config (CS: 123456)

我需要能够捕获完整的文件路径(从$到文件扩展名末尾,可以是任意数量的东西)。无论文件名中有多少点,我都必须能够得到它。在某些情况下,文件名中也包含空格,因此我需要能够将其合并。

编辑:这种情况下的结尾(CS....)不是标准的。各种各样的东西都可以沿着这条路前进,所以我无法预测这条路之后会发生什么,但是该路总是 始终是第一位。有时文件名中确实存在空格。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

尝试一下:

(\$.*\.[\w.-]+)

但是!它将无法正确匹配文件扩展名中带有空格或特殊字符的文件。如果需要匹配文件扩展名中可能包含特殊字符的文件,则需要详细说明输入内容(是否引号?是否转义了?)。