Изменение части имени папки

#string #matlab

#строка #matlab

Вопрос:

Я хочу удалить часть имени папки, и в цикле, например, у меня есть сотни имен папок, таких как abc_123, dsf_321 и так далее, и я хочу удалить все после подчеркивания (_), включая само подчеркивание. Имена, которые я могу сохранить в структуре, скажем, 500 X 1 struct, и каждое из имен — something_numbers

Я не хочу физически изменять названия папок, только имена в структуре 500 x 1 в рабочей области

Ответ №1:

Вы можете использовать regexp , чтобы сохранить только нужную часть. Я предполагаю, что имена содержатся в массиве строк ячеек:

 >> names = {'abc_123'; 'dsf_321'}; %// cell array of strings
>> result = arrayfun(@(n) regexp(names{n}, '^[^_]*', 'match'), 1:numel(names))
result = 
    'abc'    'dsf'