正则表达式选择最后两个文件夹路径名

时间:2016-09-13 01:16:20

标签: regex perl directory sublimetext3 filepath

我在perl工作,但我在删除其他文件夹名称以留下最后两个文件夹名称时遇到了一些问题。

Trainings and Events
General Office\Archive
General Office\Office Opperations\Contacts
General Office\Office Opperations\Office Procedures\How Tos
public_html\Accordion\.svn\tmp\text-base

我想删除文件夹路径名,这样文件夹最终会像这样,最后两个路径名分别为:

Trainings and Events
General Office\Archive
Office Opperations\Contacts
Office Procedures\How Tos
tmp\text-base
Office Opperations\Contacts

我已经阅读了其他一些显示最后两个文件夹名称被选中的stackoverflow,但是我无法反转表达式。 (如果我能找到它,我会链接它)

我目前正在使用sublime text 3来测试我的表达式。

谢谢

2 个答案:

答案 0 :(得分:0)

您想要的模式是

s/.+\/(.+\/.+)$/$1/g

它将获取文件夹名称的最后一位并用它替换整个字符串。

答案 1 :(得分:0)

(?:[^\\]*\\|^)[^\\]*$

你实际上想要"最多两个",因为否则你不会抓住"训练和事件"。为了解决这个问题,我将这两种情况分开匹配:

  • 文件夹名称(任意数量的非反斜杠)后跟斜杠或字符串的开头
  • 另一个文件夹名称
  • 字符串结尾