"contains" with multiple conditions

58 visualizaciones (últimos 30 días)
Sim
Sim el 16 de Dic. de 2021
Comentada: Sim el 16 de Dic. de 2021
Hi, I have the following code
A = "159 ( 51,1%) 13 (4,2% ) 139 (44,7%)";
A = textscan(A,'%s','Delimiter',' ')';
A{:}(contains(A{:},'(')) = [];
A{:}(contains(A{:},')')) = [];
A{:}(contains(A{:},'%')) = [];
which removes all the brackets and the numbers between the brackets (in this case they are percentages):
% Result after "textscan" (just typing A{:})
8×1 cell array
{'159' }
{'(' }
{'51,1%)' }
{'13' }
{'(4,2%' }
{')' }
{'139' }
{'(44,7%)'}
% Result after all the "contains" (just typing A{:})
3×1 cell array
{'159'}
{'13' }
{'139'}
However, I would like to use one single command for contains with multiple conditions. Would it be possible?
Something like this:
% Input
A{:}(contains(A{:},['(' OR ')' OR '%')) = [];
% Desired output
A = "159 13 139";

Respuesta aceptada

Matt J
Matt J el 16 de Dic. de 2021
Editada: Matt J el 16 de Dic. de 2021
A = "159 ( 51,1%) 13 (4,2% ) 139 (44,7%)";
A=eraseBetween(A,"(", ")")
A = "159 () 13 () 139 ()"
cellstr( extract(A,digitsPattern) )
ans = 3×1 cell array
{'159'} {'13' } {'139'}
  2 comentarios
Sim
Sim el 16 de Dic. de 2021
Many thanks @Matt J .... but actually I would need to remove the numbers among the brackets..
My desired output would be this one:
% Desired output
A = "159 13 139";
Sim
Sim el 16 de Dic. de 2021
Cool solution @Matt J, many thanks!

Iniciar sesión para comentar.

Más respuestas (1)

Matt J
Matt J el 16 de Dic. de 2021
Editada: Matt J el 16 de Dic. de 2021
A = "159 ( 51,1%) 13 (4,2% ) 139 (44,7%)";
A = textscan(A,'%s','Delimiter',' ')';
A=vertcat(A{:});
A( contains(A,{'(',')','%'}) )=[]
A = 3×1 cell array
{'159'} {'13' } {'139'}
  1 comentario
Sim
Sim el 16 de Dic. de 2021
Oh Great!! This is exactly what I was thinking about/looking for! The multiple conditions in "contains" are given by curly brackets..!

Iniciar sesión para comentar.

Categorías

Más información sobre Characters and Strings 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