Matlab - 删除部分字符串

时间:2016-04-27 19:26:19

标签: string matlab replace

我有一个字符串列表,如下所示:

/disk1/home/alb/main/directory1/image0001.png

我想在最后一个之后删除所有内容并最终得到一个如下所示的字符串:

/disk1/home/alb/main/directory1/

有快速的方法吗?

谢谢

2 个答案:

答案 0 :(得分:5)

您需要使用first output fileparts,因为它可以保证在所有平台上运行。 fileparts函数是一个内置函数,用于将路径分成目录,文件名和文件扩展名。

string = '/disk1/home/alb/main/directory1/image0001.png'
part = fileparts(string);

如果你确实需要这个尾部斜杠(如果你使用fullfile来构建一个新路径,则不应该这样做),那么你可以使用filesep将它添加到最后。

part_with_slash = [part, filesep];

如果由于某种原因您尝试在Windows计算机(具有不同的文件分隔符)上处理此* nix文件路径,,则可以使用以下regexp

part = regexp(string, '.*/', 'match');

答案 1 :(得分:1)

您可以使用正则表达式:

str = "/path/to/file.png"

regexprep(str,'([A-Za-z0-9]\.png)?','once')

?让它变得懒惰,这是最短的匹配。