Ich habe eine Reihe von CSV-Dateien mit der Struktur SC [x] wordswordswords [ending] .csv, wobei [x] eine ansteigende Ganzzahl ist, und [ending ] ist 2 Zeichen vor dem Dateityp. zB: SC3performanceOverview ES .csv; SC4performanceSubstitute SL CSV, etc. Mein aktueller Code ist wie folgtMit regexp in Matlab, um bestimmte Datei von Anfang und Ende Komponenten des Dateinamens zu finden
searchNum = 3;
searchCrit = strcat('Sc', num2str(searchNum));
searchEnding = 'TS';
list = dir('*.csv');
list = {list.name};
rgx1 = regexp(list,searchCrit);
rgx1 =~ cellfun('isempty',rgx1);
listNew = list(rgx1);
rgx2 = regexp(listNew,searchEnding);
rgx2 =~ cellfun('isempty',rgx2);
OutputName = char(listNew(rgx2))
Dies auf einem Code-Schnipsel basiert ich in altem Code im Umlauf war. Dies scheint eine unglaublich klobige Art der Verwendung von Regexp zu sein, und ich bin mir sicher, dass es einen besseren Weg geben muss, meine Datei mit nur einer Verwendung von Regexp zu finden, aber ich bin mir nicht sicher, wie. MathWorks war nicht viel Hilfe, und ich konnte diese genaue Frage nicht anderswo auf SO finden. Danke im Voraus.
Versuchen Sie 'strcat ('^', searchCrit, '. *', SearchEnding, '[.] Csv $')' anstelle der ersten Regex. –
@ WiktorStribiżew Danke, wenn Sie dies eine Antwort machen, markiere ich es beantwortet. – alzinos