2014-09-02 80 views
0

我有這個字符串:更改字符串較小的一個

aa= 'SAN/MOST/MOD10A1.005/2000.02.26/MOD10A1.A2000057.h01v10.005.2007163034521.hdf.xml' 

我想將它更改爲:

'MOD10A1.A2000057.h01v10.005.2007163034521.hdf.xml' 

我怎樣才能做到這一點利用Matlab? 我嘗試這段代碼,但它無法正常工作。

s=regexp(aa, '[_.]', 'split'); 

有人可以幫忙?

回答

2

可以使用strfind函數:

idx = strfind(aa,'/'); 
s = aa(idx(end)+1:end) 
2

strfind只能從R2013a及以後。您可以像以前一樣使用regexp,但請改爲使用/符號。查找/符號的最後一次出現,然後像使用Highman所做的那樣使用該字符串,然後使用它的子集。換句話說:

aa = 'SAN/MOST/MOD10A1.005/2000.02.26/MOD10A1.A2000057.h01v10.005.2007163034521.hdf.xml'; 
idx = regexp(aa, '\/'); 
aaSubset = aa(idx(end)+1 : end); 

注意到,我不得不使用\字符和/字符作爲/之前將其放置在正則表達式看時保留符號。 aaSubset包含您正在查找的字符串。我得到:

aaSubset = 

MOD10A1.A2000057.h01v10.005.2007163034521.hdf.xml 
2

另一種方法使用正則表達式(具體regexprep):

s = regexprep(aa, '^.*\/', ''); 

greedily查找的字符串的開頭開始,在/結束的任何字符序列,並刪除(用空字符串替換它)。


您還可以使用fileparts

[folder, name, ext] = fileparts(aa); 
s = [name ext]; 
+0

哇。不知道'fileparts'。涼! – rayryeng 2014-09-02 14:14:00

相關問題