使用uigetfile中的FilterSpec排除/否定文件名中的单词

时间:2016-02-08 17:28:28

标签: matlab

我想打开一个对话框来选择文件并显示具有特定扩展名的所有文件,但是根据模式匹配(正则表达式或其他方式)排除某些文件名。

例如,我想显示CSV文件,但不显示文件名中包含“abc”的文件。

要显示我可以做的所有.csv文件(不是我想要的):

[filename, pathname] = uigetfile({'*.csv', 'CSV Files (*.csv)'});

使用正则表达式,我可以成功地使用'abc'排除文件名,如下所示(感谢How to negate specific word in regex?):

filenames = {'myfile.csv'; 'myfile-abc.csv'}
regexp(filenames, '^(?!.*abc).*.csv')

但是,以下情况不起作用:

[filename, pathname] = uigetfile({'^(?!.*abc).*.csv', 'CSV Files (*.csv)'});

如何否定文件名中出现的单词?看来我只能做积极的通配符(*)但不能否定。

1 个答案:

答案 0 :(得分:0)

似乎不可能。如果您在Matlab中查看实现,您会发现调用了Java标准对话框。要么开发自己的对话框,要么稍后检查对话框的输出。