2016-02-08 3 views
1

Я хотел бы открыть диалоговое окно, чтобы выбрать файл и показать все файлы с определенным расширением, но исключить определенные имена файлов на основе соответствия шаблону (регулярное выражение или иначе).Исключить/отрицать слово в именах файлов, используя FilterSpec в uigetfile

Например, я хочу показать 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

Нет, это невозможно. Если вы посмотрите на реализацию в Matlab, вы обнаружите, что вызывается стандартное диалоговое окно Java. Либо вы разрабатываете свой собственный диалог, либо позже проверяете выходы диалога.

Смежные вопросы