我可以发誓我之前做过这件事,但是......不行。
我正在尝试将文件名从下面的示例数据的每一行复制到行的开头。但是,当我在表达式中添加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
任何协助都非常适合。谢谢。
答案 0 :(得分:4)
我认为你可以使用这个正则表达式:
.*\\(.*)$
这会贪婪地从左到右消耗文件路径中的所有内容,直到达到最后的反斜杠。然后它将停止,捕获最后反斜杠后面的所有内容,这应该是文件名。
在这里演示: