Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex-从各个子目录查找文件名_Regex - Fatal编程技术网

Regex-从各个子目录查找文件名

Regex-从各个子目录查找文件名,regex,Regex,我有一个在Windows和Unix之间跨平台的函数,我需要从以下内容中提取文件名: ../../Media/foo-blah\\bar-name\\ 其中分隔符可以是正斜杠/、反斜杠\或双反斜杠\\。我需要一个正则表达式,它只给我文件名减去后面的斜杠 字符串不能以任何斜杠结尾,也可以以上述任何一种斜杠结尾 我无法为应用程序使用专有的脚本语言,因此我无法运行shell或Perl,但我可以分步进行匹配 有什么好主意吗?如果你不想要一个看起来像标点符号之神的正则表达式,那它就到处都是 字符串替换为/

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

../../Media/foo-blah\\bar-name\\
其中分隔符可以是正斜杠/、反斜杠\或双反斜杠\\。我需要一个正则表达式,它只给我文件名减去后面的斜杠

字符串不能以任何斜杠结尾,也可以以上述任何一种斜杠结尾

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


有什么好主意吗?

如果你不想要一个看起来像标点符号之神的正则表达式,那它就到处都是

字符串替换为/。 字符串替换//为/。 带尾随/如果有。 在最后一个/上拆分。 如果你写一个正则表达式,你会得到一个充满[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

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


是的,对我来说,看起来像一堆/////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/p>Hm。上面的路径不能是Windows路径,是吗?在类Unix系统上,文件名应为foo blah\\bar name\\。后面的斜杠只出现在目录中,从更广泛的意义上说,目录是文件,一切都是文件。