的一部分,我有一個字符串列表看起來像這樣:Matlab的 - 刪除字符串
/disk1/home/alb/main/directory1/image0001.png
我想在最後去除一切/和用一個看起來像這樣的字符串結束:
/disk1/home/alb/main/directory1/
有沒有快速的方法來做到這一點?
謝謝
的一部分,我有一個字符串列表看起來像這樣:Matlab的 - 刪除字符串
/disk1/home/alb/main/directory1/image0001.png
我想在最後去除一切/和用一個看起來像這樣的字符串結束:
/disk1/home/alb/main/directory1/
有沒有快速的方法來做到這一點?
謝謝
您將需要使用fileparts
的first output,因爲它可以保證在所有平臺上都能正常工作。 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');
您可以使用正則表達式:
str = "/path/to/file.png"
regexprep(str,'([A-Za-z0-9]\.png)?','once')
的?這使得它很懶,這是最短的可能。
謝謝,這個作品真的很好,我給了我的例子。我的目錄名更復雜一些,我給了一個更簡單的版本來簡化它。我的字符串看起來像這樣:'/disk1/home/alb/main/directory1/direct1_subdir1_image0001.png'當我使用你的解決方案時,它刪除了PNG,但不是整個direct1_subdir1_imag0001。任何想法如何解決這個問題? –
@ALB這個正則表達式應該可以工作:''\\(?= [。] * $)'' –
可能的[如何獲取文件名的路徑部分?]的副本(http://stackoverflow.com/questions/14476200/how-to-get-the-path-part-ofa-a-文件名) – excaza