Find prefix and postfix in a string

12 visualizaciones (últimos 30 días)
pamela sulis
pamela sulis el 18 de Nov. de 2015
Comentada: pamela sulis el 18 de Nov. de 2015
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 comentarios
Guillaume
Guillaume el 18 de Nov. de 2015
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 el 18 de Nov. de 2015
Editada: pamela sulis el 18 de Nov. de 2015
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

Iniciar sesión para comentar.

Respuesta aceptada

Guillaume
Guillaume el 18 de Nov. de 2015
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 comentarios
Guillaume
Guillaume el 18 de Nov. de 2015
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 el 18 de Nov. de 2015
thanks!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Data Type Conversion en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by