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.

 採用された回答

Adam
Adam 2014 年 8 月 6 日
[b, c] = strtok( a, '_' )
b = strcat( b, c )
looks like it works.

1 件のコメント

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

サインインしてコメントする。

その他の回答 (1 件)

AJ von Alt
AJ von Alt 2014 年 8 月 6 日
b = regexprep(a,'^_','','emptymatch')

1 件のコメント

Ken Campbell
Ken Campbell 2014 年 8 月 6 日
That works too and is elegant. I should learn more about regular expressions. Thanks.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeCharacters and Strings についてさらに検索

質問済み:

2014 年 8 月 6 日

コメント済み:

2014 年 8 月 6 日

Community Treasure Hunt

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

Start Hunting!

Translated by