我有一个Windows和Unix之间的跨平台功能,我需要从以下内容中提取文件名:
../../Media/foo-blah\\bar-name\\
分隔符可以是正斜杠/
,反斜杠\
或双反斜杠\\
。我需要一个正则表达式,只给我文件名减去任何尾部斜杠。
字符串可能不会以任何斜杠结尾,或者它可能以上述任何一种结尾。
我坚持使用专有的脚本语言来运行应用程序,因此我无法运行shell或Perl,但我可以分步进行匹配。
有什么想法吗?
答案 0 :(得分:0)
如果你不想要一个看起来像标点符号之神的正则表达式,那就完全禁止它了,
\
替换为/
。//
替换为/
。/
。/
。(如果你写了一个正则表达式,你最终会得到满满的[\\\\\\\\|\\\\|/]
。)
答案 1 :(得分:0)
也许其中一个
(?:^[.]*|[\\/]?)\s*(\w+?)\s*[\\/]*\s*$
或
(?:^[.]*|[\\/]?)\s*([^\\/]+?)(?<!\s)\s*[\\/\s]*\s*$
或
(?:^[.]*|[\\/]?)\s*([<valid-filename characters>]+?)\s*[\\/]*\s*$
是的,对我来说看起来像是一堆/////\\\\\\\\\
。