我有一些文件扩展名为.xls
或的excel文件.xlsx
.我想从文件名末尾删除此文件扩展名.其中一些文件是.xls
和其他文件一样.xlsx
,所以首先我要查找文件排泄类型(.xls
以及.xlsx
- 对于代码中的其他处理),然后删除该扩展名.
我怎么能用正则表达式做到这一点?
谢谢.
我只是使用这个fileparts()
功能.
[sPath, sFilename, sExt] = fileparts( sFile );
sFileBase = [ sPath, sFilename];
Run Code Online (Sandbox Code Playgroud)
作为方法的提示,您可以open fileparts
查看源代码.
我们试试吧:
[sFiles, sPath] = uigetfile({'*.xls;*.xlsx','Select Excel files'; ...
'*.*', 'Select any file'}, ...
'MultiSelect', 'on');
Run Code Online (Sandbox Code Playgroud)
并选择"Boolk1.xls","Book1.xlsx"和"Book1.txt".sFiles是一个字符串的单元格数组,所以我们可以这样做:
for i = 1:length(sFiles)
[~, sFilename, sExt] = fileparts( sFiles{i} );
if( strcmpi( sExt, '.xls' ) )
fprintf( '%s%s is a .xls file.\n', sFilename, sExt );
elseif( strcmpi( sExt, '.xlsx' ) )
fprintf( '%s%s is a .xlsx file.\n', sFilename, sExt );
else
fprintf( '%s%s is neither a .xls nor a .xlsx file.\n', sFilename, sExt );
end
end
Run Code Online (Sandbox Code Playgroud)
结果是:
Book1.txt is neither a .xls nor a .xlsx file.
Book1.xls is a .xls file.
Book1.xlsx is a .xlsx file.
Run Code Online (Sandbox Code Playgroud)
(Matlab很简单!)