String 将字符串更改为较小的字符串

String 将字符串更改为较小的字符串,string,matlab,String,Matlab,我有这个字符串: 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'); 任何人都可以提供帮助???您可以使用str

我有这个字符串:

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');

任何人都可以提供帮助???

您可以使用
strfind
功能:

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

您可以改用
strfind
功能:

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

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

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

使用正则表达式的另一种方法(特别是):

这将查找从字符串开头到
/
结尾的任何字符序列,并删除该序列(用空字符串替换)


您还可以使用:


使用正则表达式的另一种方法(特别是):

这将查找从字符串开头到
/
结尾的任何字符序列,并删除该序列(用空字符串替换)


您还可以使用:


哇!不知道有关
文件部件的信息。酷!哇!不知道有关
文件部件的信息。酷!