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

Regex 最后两个文件夹路径名的正则表达式选择,regex,perl,directory,sublimetext3,filepath,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 我想删除文件夹路径名,这样文件夹将以每

我在用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,上面显示了最后两个文件夹名,但我无法反转这个表达式。(如果我能找到,我会链接它)

我正在使用升华文本3测试我的表情


谢谢

您想要的图案是

s/.+\/(.+\/.+)$/$1/g
它将获取文件夹名称的最后一位,并用它替换整个字符串

(?:[^\\]*\\|^)[^\\]*$
实际上,你想要“最多两个”,因为否则你就无法赶上“训练和活动”。为了解决这个问题,我分别匹配了两种情况:

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

那么我应该使用grep将选择放入数组吗?您要求“最后两个文件夹路径名的正则表达式选择”。答案就是这样。我不知道你该怎么处理它。如果您希望在一个数组中得到结果,那么这应该是问题所在,不是吗?您也不指定数据是在文件中、字符串中还是在数组中。我只能假设您希望使用Perl,因为您的标记。这些事情肯定会影响答案。