2013-08-09 2 views
0

Это может быть очень простая задача для многих, но я не мог найти для меня ничего подходящего.Разделение имени файла по частям по идентификатору

У меня есть имя файла: filenm_A006.2011.269.10.47.G25_2010

Я хочу, чтобы отделить все его части (разделенных . и _), чтобы использовать их по отдельности. Как я могу сделать это с помощью простых команд matlab?

Уважение,

Mushi

ответ

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} для частей. Объяснение: шаблон regexp [^_.] означает, что все символы не равны _ или ., а + означает, что вам нужны группы не менее 1 символа. Затем «match» запрашивает функцию regexp для возврата массива ячеек строк всех совпадений этого шаблона. Существуют и другие режимы регулярного выражения; например, индексы каждой части файла.

1

Вы можете использовать strsplit разделить его:

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

ans = 

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

Другой вариант заключается в использовании regexp, как Питер предложил.

+0

Обратите внимание, что 'strsplit' является R2013a +. – horchler

Смежные вопросы