首页 > 解决方案 > 正则表达式在路径中查找最后一个文件夹名称

问题描述

我有以下路径:

O:\Audits\Crisis Management 2016\2016 ECPR Final Report.pdf

我需要一个正则表达式,它返回路径中最后一个文件夹(最右边)的名称,即“ Crisis Management 2016 ”。

我试过(?:[^\\]*\\|^)[^\\]*$了,很接近,但返回“ Crisis Management 2016\2016 ECPR Final Report.pdf ”,其中包括尾部反斜杠和文件名。

提前致谢!

标签: regex

解决方案


您可以使用

[^\\]+(?=\\[^\\]+\\?$)

查看正则表达式演示

细节

  • [^\\]+- 1+ 字符以外\
  • (?=\\[^\\]+\\?$)- 一个积极的前瞻,需要\, 1+ 个字符\,然后\在字符串末尾紧挨当前位置右侧的可选字符。

如果您可以轻松访问捕获组并且不支持使用前瞻

([^\\]+)\\[^\\]+\\?$

请参阅此演示

前瞻转换为消费模式,第一个模式用捕获括号包裹(形成将子匹配保存在内存缓冲区中的第 1 组)。


推荐阅读