How to extract the first part of an array of strings by pattern?

2 vues (au cours des 30 derniers jours)
JFz
JFz le 25 Mai 2017
Commenté : Image Analyst le 25 Mai 2017
Hi,
I have an array of strings: L_Name. Each string has several "_" in it. I would like to have an array that take the first part in each string by '_'. I tried to use strfind, or reg, but just cannot get it.
How to do that? Thanks! JF

Réponse acceptée

Stephen23
Stephen23 le 25 Mai 2017
Modifié(e) : Stephen23 le 25 Mai 2017
If you want the part of the string before the first underscore '_', then you can use regexp:
>> C = {'L_Name','Z_Y_X','Aaaa_BBBB','MMM'};
>> D = regexp(C,'[^_]+','once','match');
>> D{:}
ans = L
ans = Z
ans = Aaaa
ans = MMM
>>
  2 commentaires
JFz
JFz le 25 Mai 2017
Thanks.
Image Analyst
Image Analyst le 25 Mai 2017
The nice thing is, it also works for an array of strings (the new string data type that MATLAB now has) in addition to the cell array Stephen showed:
C = ["L_Name","Z_Y_X","Aaaa_BBBB","MMM"]
D = regexp(C,'[^_]+','once','match');
D{:}

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

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

Tags

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by