0

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

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

我想将其所有部分(由.and分隔_)分开以单独使用。如何使用简单的 matlab 命令来做到这一点?

亲切的问候,

木石

4

3 回答 3

5

我推荐正则表达式:

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 个字符的组。然后“匹配”要求正则表达式函数返回该模式的所有匹配字符串的元胞数组。还有其他正则表达式模式;例如,每个文件的索引。

于 2013-08-09T13:33:10.327 回答
1

使用命令 strsplit

cellArrayOfParts = strsplit(fileName,{'.' '_'});
于 2013-08-09T13:34:43.710 回答
1

您可以使用strsplit它来拆分它:

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

ans = 

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

另一种选择是使用regexp,就像彼得建议的那样。

于 2013-08-09T13:35:21.520 回答