Remove parenthesis and the contents inside from a string

Is there a neat way to remove a parenthesis and the contents inside from a string. For example the string
A = 'abc (ABC)'
% how to extract 'abc' from A, get rid of ' (ABC)' including the leading whitespace?
One cumbersome solution is:
temp = strsplit(A,'(');
B = strtrim(temp(1));

 Accepted Answer

A = 'abc (ABC)';
B = regexp(A,'^\w+','once','match')
B = 'abc'

5 Comments

If we have something like this:
S = {'A(+229.16)AAAAAAAAW'
'AAA(+148.52)DETLRLW'
'AA(+155.89)ALPAAALW'};
How can we remove (+*) from middle?
I need to have the following array:
S = {'AAAAAAAAAW'
'AAADETLRLW'
'AAALPAAALW'};
Thanks in advance,
Moh
Perhaps one of these:
S = {'A(+229.16)AAAAAAAAW'
'AAA(+148.52)DETLRLW'
'AA(+155.89)ALPAAALW'};
A = regexprep(S,'[^A-Z]+','')
A = 3×1 cell array
{'AAAAAAAAAW'} {'AAADETLRLW'} {'AAALPAAALW'}
B = regexprep(S,'\([^)]+\)','')
B = 3×1 cell array
{'AAAAAAAAAW'} {'AAADETLRLW'} {'AAALPAAALW'}
Excuse me I have a question.. how could you do the inverse of this??
I mean to extract the only the characters that exist in brackets without the others.
for example:
input : A = 'abc (ABC)';
output B = 'ABC'
could you please help me?
"I mean to extract the only the characters that exist in brackets without the others."
A = 'abc (ABC)';
B = regexprep(A,{'.*\(','\).*'},'')
B = 'ABC'

Sign in to comment.

More Answers (1)

A = 'abc (ABC)' ;
idx = strfind(A,' (') ;
iwant = A(1:idx-1)

Categories

Tags

Asked:

on 7 Jan 2021

Commented:

on 9 Mar 2023

Community Treasure Hunt

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

Start Hunting!