Recovering text between parentheses using regexp

Hi,
I am trying to create a regular expression using which i can recover the string between two parenthesis. I have created the following expression
exp='[^(]+.*[^)]+';
matchStr = regexp(str,exp,'match');
This expression works fine if the string is off any one of the formats mentioned below:
a) str = '(1r)';
b) str = '(0.5;0.5;'rrr')'; etc
but does not work if the string is off the form
str = '(r)'; or str = '(1)';
i.e. it doesn't pick up string which are just off 1 character between the parenthesis. I think i am missing something very basic here. Is it that regex will not work for single characters and will only work for strings?
Thanks in advance,
Regards,
Giri

3 comentarios

Rik
Rik el 7 de Mayo de 2018
You can look for a solution in the question by someone with the exact same question here.
Giri
Giri el 7 de Mayo de 2018
Thanks Rik..

Iniciar sesión para comentar.

 Respuesta aceptada

Fangjun Jiang
Fangjun Jiang el 7 de Mayo de 2018

2 votos

exp = '[^()]*'; should be it.

2 comentarios

Giri
Giri el 7 de Mayo de 2018
Thanks Fangjun for that.. it works fine... Can you please explain how this works? Is it like, it just ignores ( and ) in the text and takes everything else?
doc regexp
[^c1c2c3]: Any character not contained within the brackets.
expr*: 0 or more times consecutively.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Characters and Strings en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 7 de Mayo de 2018

Comentada:

el 7 de Mayo de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by