How to separate a portion of filename from a file
10 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
S Roy
el 8 de Sept. de 2019
Respondida: madhan ravi
el 8 de Sept. de 2019
How to separate a portion of filename from a file like I have the file 'scrubbed.MOD_D3_AOD_550.20020112.nc' I just want to extract the '20020112' part
0 comentarios
Respuesta aceptada
Adam Danz
el 8 de Sept. de 2019
Editada: Adam Danz
el 8 de Sept. de 2019
[~, fname] = fileparts('scrubbed.MOD_D3_AOD_550.20020112.nc');
[~,tok] = regexp(fname,'.(\d+)$','match','tokens');
str = tok{1}{1};
4 comentarios
Adam Danz
el 8 de Sept. de 2019
Editada: Adam Danz
el 8 de Sept. de 2019
Glad I could help. The other answers here reminded me to make clear the assumption in my answer that the string of interest is always at the end of the filename (ignoring the final file extension) and is preceeded by a decimal point.
Más respuestas (3)
Stephen23
el 8 de Sept. de 2019
Simpler:
>> str = 'scrubbed.MOD_D3_AOD_550.20020112.nc';
>> out = regexp(str,'\d{8}','match','once')
out = 20020112
2 comentarios
Adam Danz
el 8 de Sept. de 2019
It is simpler and assumes that the string of interest will always have 8 digits and that will be the only sub-string with 8 digits.
Image Analyst
el 8 de Sept. de 2019
Try strsplit():
parts = strsplit('scrubbed.MOD_D3_AOD_550.20020112.nc', '.') % Separate in between dots.
yourNumber = parts{end-1} % Take the next to the last one.
2 comentarios
madhan ravi
el 8 de Sept. de 2019
regexp('scrubbed.MOD_D3_AOD_550.20020112.nc',...
'\d*(?=\.nc)','match','once')
0 comentarios
Ver también
Categorías
Más información sobre String Parsing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!