Is there an efficient method to remove leading underscores from a cell array of strings?

Given
a={'rose','_tulip_blue','lilac','_daisy'}
is there an efficient way of stripping the leading underscores to give
b={'rose','tulip_blue','lilac','daisy'}
I tried
strtok(a,'_')
but that gives
b={'rose','tulip','lilac','daisy'}
and misses the '_blue'. I would like to avoid looping through the strings one at a time if possible.

 Réponse acceptée

[b, c] = strtok( a, '_' )
b = strcat( b, c )
looks like it works.

1 commentaire

I agree it works :-)
It also copes with more than 2 underscores. For example.
a={'rose','_tulip_blue_red','lilac','_daisy'}
[b,c]=strtok(a,'_');
b=strcat(b,c);
gives
b={'rose' 'tulip_blue_red' 'lilac' 'daisy'}
Thanks

Connectez-vous pour commenter.

Plus de réponses (1)

b = regexprep(a,'^_','','emptymatch')

1 commentaire

That works too and is elegant. I should learn more about regular expressions. Thanks.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Characters and Strings dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by