Find prefix and postfix in a string

Hi! I have a cell array (106x1) of strings, I want to find a prefix in every string and, after find the postfix, count the number of different items. Example
'0(012)(02)3(26)'
'(03)2(12)04)'
'(45)(02)(35)21'
'46(15)212'
For the prefix '01' the postfix are:
'(_2)(02)3(26)'
'(_2)04'
'3'
now i want to count the items more frequent: 0, 2, _2
Can you help me? Thanks

2 件のコメント

Guillaume
Guillaume 2015 年 11 月 18 日
In your last two lines, I can't see any '01', so shouldn't the output be:
'(_2)(02)3(26)'
'(_2)04'
''
''
I also note that in your output you include the '(' that is before the prefix (and hence is not a postfix). Is that correct and is there any other symbol that follows this rule?
You've not explained what constitute an item, so I've no idea how you come about '0', '2', and '_2' being the most frequent. Why isn't '(' or ')' the most frequent item?
pamela sulis
pamela sulis 2015 年 11 月 18 日
編集済み: pamela sulis 2015 年 11 月 18 日
Yes, I made a mistake! After I have found the prefix, I want to find the elements more frequent in postfix. That in this case are 0,2 and (_2) but i have no idea how to do this. I have tried to find postfix in this way:
for k=1:106
a(k)= regexp(TrajCompact(k,1), '01', 'split');
end

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

 採用された回答

Guillaume
Guillaume 2015 年 11 月 18 日

1 投票

You can't have a regex that returns the before and after of a sequence of characters without that sequence of characters, but you can do your search and replace in two steps
in = {'0(012)(02)3(26)'
'(03)2(012)04)'
'(45)(02)(35)21'
'46(15)212'};
matches = regexp(in, '\(?01.*', 'match', 'once');
out = regexprep(matches, '01', '_') %note that you could simply use strrep
As for your question about frequency, I still have no idea what constitute an item or element.

3 件のコメント

pamela sulis
pamela sulis 2015 年 11 月 18 日
With the terms 'item' or 'elements', I indicate 0,1,2,3,4 etc... Your code is good, now I control about strrep... thanks
Guillaume
Guillaume 2015 年 11 月 18 日
Well , 0, 1, 2, 3, 4,... are individual digits. Yet, you also include _2 in your items which is made of two characters.
pamela sulis
pamela sulis 2015 年 11 月 18 日
thanks!

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

その他の回答 (0 件)

カテゴリ

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

質問済み:

2015 年 11 月 18 日

コメント済み:

2015 年 11 月 18 日

Community Treasure Hunt

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

Start Hunting!

Translated by