how to find a string within a filename?

8 ビュー (過去 30 日間)
andrew
andrew 2014 年 4 月 15 日
回答済み: Jos (10584) 2014 年 4 月 25 日
I have a list of filenames and want to search for specific strings within the filenames and have them printed horizontally separated by a ';'. for example I have the following filenames:
  • apple.doc
  • apple2.csv
  • apple3.xls
  • banana.doc
  • banana2.csv
  • banana3.xls
I only want the "apple" files and the final output should be: apple.doc; apple2.csv; apple3.doc
How do I do this?

回答 (3 件)

Sara
Sara 2014 年 4 月 15 日
Try looking up the strfind command.

Star Strider
Star Strider 2014 年 4 月 15 日
編集済み: Star Strider 2014 年 4 月 15 日
Try this:
FileNames = {'apple.doc', 'apple2.csv', 'apple3.xls', 'banana.doc', 'banana2.csv', 'banana3.xls'}
NewFiles = {};
for k1 = 1:size(FileNames,2)
A = strfind(FileNames{k1}, 'apple');
if ~isempty(A)
NewFiles = [NewFiles; FileNames{k1}];
end
end
  1 件のコメント
andrew
andrew 2014 年 4 月 25 日
I used this but it returns a double '18' how do I get the string of the doubles

サインインしてコメントする。


Jos (10584)
Jos (10584) 2014 年 4 月 25 日
NAMES = {'apple.doc', 'apple2.csv', 'TESTappleTEST.xls', 'banana.doc', 'banana2.csv', 'banana3.xls','APPL_almost.txt'}
C = regexp(NAMES, '.*apple.*', 'match') % find all names with the word apple in it.
outputstr = sprintf('%s;',C{:}) ; % concatenate them in a single row
outputstr = outputstr(1:end-1) ; remove last semi-colon
disp(outputstr) % show

カテゴリ

Help Center および File ExchangeString Parsing についてさらに検索

タグ


Translated by