按标识符分隔文件名

时间:2013-08-09 13:21:02

标签: matlab split filenames

对许多人来说,这可能是一项非常简单的任务,但我找不到适合我的任何内容。

我有一个文件名:filenm_A006.2011.269.10.47.G25_2010

我想将其所有部分(由._分隔)分开使用它们。我怎么能用简单的matlab命令来做呢?

亲切的问候,

亩施

3 个答案:

答案 0 :(得分:5)

我推荐regexp:

fname = 'filenm_A006.2011.269.10.47.G25_2010';
parts = regexp(fname, '[^_.]+', 'match');

parts = 
    'filenm'    'A006'    '2011'    '269'    '10'    '47'    'G25'    '2010'

您现在可以参考零件{1}到零件{8}来查看零件。说明:正则表达式模式[^_.]表示所有字符不等于_.,而+表示您需要至少包含1个字符的组。然后'match'要求regexp函数返回该模式的所有匹配字符串的单元格数组。还有其他正则表达式模式;例如,文件的每个部分的索引。

答案 1 :(得分:1)

使用该命令 strsplit

cellArrayOfParts = strsplit(fileName,{'.' '_'});

答案 2 :(得分:1)

您可以使用strsplit拆分它:

strsplit('filenm_A006.2011.269.10.47.G25_2010',{'_','.'})

ans = 

    'filenm'    'A006'    '2011'    '269'    '10'    '47'    'G25'    '2010'

另一种选择是像Peter建议的那样使用regexp