【发布时间】:2014-07-28 15:30:45
【问题描述】:
我有示例路径:
/var/ftp/video/Portuguese/Portuguese-Daniel/Animação Inicial/CLIPS/Torsten.Sturmwellen.Veith/Wellen_00653.tif
我需要将/var/ftp/video/English目录以及一些文件扩展名(如doc/docx/ppt/pptx/tif/tiff/pdf/jpg/DS_Store)列入黑名单
我使用的正则表达式是:
^(?!\/var\/ftp\/video\/English)(.*\.(?!doc.*$|ppt.*$|jpg.*$|tif.*$|pdf.*$|DS_Store.*$)[^.]+)
但它不起作用,因为它匹配这个示例路径(但没有扩展名)。 为了进行测试,我使用http://regex101.com/ 站点。
我的 RegExp 有什么问题?
【问题讨论】:
-
你为什么在最后添加
[^.]+(即在$之后)? -
如果文件路径有效则捕获扩展名(未应用黑名单)
-
在这个扩展之后是否有可能的 GET 变量
.ext?var1=value1&var2=value2...或路径.ext/dir1/dir2?你会使用什么语言? -
为什么每次分机后都加
.*?如果它们是扩展(并且没有 GET 变量),它不应该是路径的结尾吗?还有,为什么.*+在doc之后? -
因为它可能不仅是 doc,也可能是 docx。抱歉,已将 .*+ 更改为 .* 但这并不能解决问题。
标签: regex filtering filepath negative-lookahead