how to find a string within a filename?

28 ビュー (過去 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 ExchangeCharacters and Strings についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by