Condense code in Split string operation

3 vues (au cours des 30 derniers jours)
Sanju Das
Sanju Das le 13 Sep 2022
Modifié(e) : Sanju Das le 14 Sep 2022
I have a excel file with the name 'xxx_yyy_zzz.xlsx'
Here, I want to extract only the part 'zzz' and for that I am using the following code
name = 'xxx_yyy_zzz.xlsx';
dummy1 = split('xxx_yyy_zzz.xlsx', '.');
dummy2 = split(dummy1{1}, '_');
final = dummy2{end};
My question is -- is it posible to condense these four lines into a single line of code?
Thanks
SD

Réponse acceptée

Stephen23
Stephen23 le 13 Sep 2022
s = "xxx_yyy_zzz.xlsx";
regexp(s,'[^_.]+(?=\.)','match','once')
ans = "zzz"
  1 commentaire
Sanju Das
Sanju Das le 14 Sep 2022
Modifié(e) : Sanju Das le 14 Sep 2022
It works, thanks for the help

Connectez-vous pour commenter.

Plus de réponses (1)

Les Beckham
Les Beckham le 13 Sep 2022
If you put the filename in a string instead of a char vector you can do it in one line
s = "xxx_yyy_zzz.xlsx"
s = "xxx_yyy_zzz.xlsx"
extractBetween(s, '_', '_')
ans = "yyy"
If it is a char vector it will take two lines
s = 'xxx_yyy_zzz.xlsx'
s = 'xxx_yyy_zzz.xlsx'
s1 = extractBetween(s, '_', '_')
s1 = 1×1 cell array
{'yyy'}
s2 = s1{:}
s2 = 'yyy'

Catégories

En savoir plus sur Characters and Strings dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by