我想打开一个对话框来选择文件并显示具有特定扩展名的所有文件,但是根据模式匹配(正则表达式或其他方式)排除某些文件名。
例如,我想显示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)'});
如何否定文件名中出现的单词?看来我只能做积极的通配符(*)但不能否定。
答案 0 :(得分:0)
似乎不可能。如果您在Matlab中查看实现,您会发现调用了Java标准对话框。要么开发自己的对话框,要么稍后检查对话框的输出。