regex 从搜索中排除文件扩展名的紧凑语法

b1uwtaje  于 2023-02-17  发布在  其他
关注(0)|答案(1)|浏览(123)

基本上,我想知道是否有更短的方法来执行this

*.* !*.exe !*.zip !*.jar

问题是,我编写的软件生成的文件扩展名我无法预测--既不包括我想排除的内容,也不包括我想包含的内容,所以我唯一的选择就是在我运行时添加排除项。但是我的列表长度现在超过了N++的限制,所以我想知道它是否可以更短,比如

*.* !*.[exe zip jar]
jgovgodb

jgovgodb1#

编号:
"筛选器"列表是以空格分隔的cmd.exe可以理解的通配符表达式列表,如*.doc foo.*

  • 通配符可以包括*(表示零个或多个任意字符)和?(正好表示任意字符中的一个)。
  • 大多数字符用作文本。但是,空格用作分隔符,因此不能用作筛选器中的文本。某些标点字符具有特殊含义(如?*通配符,或!排除或!+\递归排除),并且不能用作文字。此外,;会导致问题,因此,即使Microsoft允许在文件名和路径名中使用;,在"筛选器"框中使用;也不会像您希望的那样起作用。如果您想在筛选器的文件或文件夹中匹配空格或分号;或其他有问题的标点符号(无论是纳入还是排除),则改用*和/或?通配符。(因此x?y.txt将匹配文件x;y.txtx y.txt(在xy之间有一个空格)。)对不起,不可以,您不能在带空格的路径两边使用引号,以允许空格作为文字:空格是此字段中分隔符。

这是因为它不是一个正则表达式。就像命令行/提示符只知道通配符,不知道正则表达式,也不知道两者的混合(例如,使用方括号)。同样,"* Directory *"也不能与正则表达式一起使用。

相关问题