文件名捕获表单路径

时间:2016-11-30 02:03:04

标签: regex

我可以发誓我之前做过这件事,但是......不行。

我正在尝试将文件名从下面的示例数据的每一行复制到行的开头。但是,当我在表达式中添加parathensis以捕获文件名时,它将被删除。我尝试了几种变体。

Regex Expresion

[^\\/:*?<>]+$

表达式成功捕获每行的文件名。

示例数据

c:\Dir1\dir2\Samplefile.txt
c:\Dir1\dir2\dir3\Sample file.txt
c:\Dir1\dir2\Samplefile
c:\Dir1\dir2\dir3\Sample file
c:\Dir1\wp_movfiles_20160911024934.ini
c:\Dir1\\dir2\wp_movfiles_20160911055222.ini

渴望结果

Samplefile.txt    c:\Dir1\dir2\Samplefile.txt
Sample file.txt   c:\Dir1\dir2\dir3\Sample file.txt
Samplefile        c:\Dir1\dir2\Samplefile
Sample file       c:\Dir1\dir2\dir3\Sample file
wp_movfiles_20160911024934.ini       c:\Dir1\wp_movfiles_20160911024934.ini
wp_movfiles_20160911055222.ini       c:\Dir1\\dir2\wp_movfiles_20160911055222.ini

任何协助都非常适合。谢谢。

1 个答案:

答案 0 :(得分:4)

我认为你可以使用这个正则表达式:

.*\\(.*)$

这会贪婪地从左到右消耗文件路径中的所有内容,直到达到最后的反斜杠。然后它将停止,捕获最后反斜杠后面的所有内容,这应该是文件名。

在这里演示:

Regex101