正则表达式 - 从各个子目录中查找文件名

时间:2012-03-22 17:56:21

标签: regex

我有一个Windows和Unix之间的跨平台功能,我需要从以下内容中提取文件名:

../../Media/foo-blah\\bar-name\\

分隔符可以是正斜杠/,反斜杠\或双反斜杠\\。我需要一个正则表达式,只给我文件名减去任何尾部斜杠。

字符串可能不会以任何斜杠结尾,或者它可能以上述任何一种结尾。

我坚持使用专有的脚本语言来运行应用程序,因此我无法运行shell或Perl,但我可以分步进行匹配。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

如果你不想要一个看起来像标点符号之神的正则表达式,那就完全禁止它了,

  1. \替换为/
  2. //替换为/
  3. 如果有的话,请删除/
  4. 拆分最后/
  5. (如果你写了一个正则表达式,你最终会得到满满的[\\\\\\\\|\\\\|/]。)

答案 1 :(得分:0)

也许其中一个

(?:^[.]*|[\\/]?)\s*(\w+?)\s*[\\/]*\s*$

(?:^[.]*|[\\/]?)\s*([^\\/]+?)(?<!\s)\s*[\\/\s]*\s*$

(?:^[.]*|[\\/]?)\s*([<valid-filename characters>]+?)\s*[\\/]*\s*$

是的,对我来说看起来像是一堆/////\\\\\\\\\