对于许多人来说,这可能是一项非常简单的任务,但我找不到适合我的东西。
我有一个文件名:filenm_A006.2011.269.10.47.G25_2010
我想将其所有部分(由.
and分隔_
)分开以单独使用。如何使用简单的 matlab 命令来做到这一点?
亲切的问候,
木石
我推荐正则表达式:
fname = 'filenm_A006.2011.269.10.47.G25_2010';
parts = regexp(fname, '[^_.]+', 'match');
parts =
'filenm' 'A006' '2011' '269' '10' '47' 'G25' '2010'
您现在可以参考零件{1}到零件{8}来了解这些片段。说明:正则表达式模式[^_.]
表示不等于_
or.
的所有字符,+
表示您想要至少 1 个字符的组。然后“匹配”要求正则表达式函数返回该模式的所有匹配字符串的元胞数组。还有其他正则表达式模式;例如,每个文件的索引。
使用命令
strsplit
。
cellArrayOfParts = strsplit(fileName,{'.' '_'});
您可以使用strsplit
它来拆分它:
strsplit('filenm_A006.2011.269.10.47.G25_2010',{'_','.'})
ans =
'filenm' 'A006' '2011' '269' '10' '47' 'G25' '2010'
另一种选择是使用regexp
,就像彼得建议的那样。