Skip commas in brackets regexp

Hi All
I am trying to split a string, but need to skip strings within brackets, and keep this as one entity. How can I split the following
A,VC,D,XO(12,13,14,15),DX,DY
using strsplit, so that XO(12,13,14,15) is not split at the commas. I would therefore like to ignore the content inside the brackets.
Any help would be appreciated.
Etienne

1 Comment

Is nesting of brackets permitted? If so that makes it much harder.

Sign in to comment.

 Accepted Answer

S = 'A,VC,D,XO(12,13,14,15),DX,DY';
regexp(S,'\w+(\([^)]+\))?', 'match')

4 Comments

Thanks Walter. Works a treat.
Hi Walter
I have to say that I am very confused by how regexp works. How would I split the following:
str = 'DATA,F,[11*0.D0,4.34255D0,-1.14281D0]'
to only split by the commas outside of the brackets?
Regards
Etienne
regexp(str,'\w*([\(\[][^\)\]]*[\)\]])?', 'match')
appears to work for both this case and the previous case.
Thanks :-)

Sign in to comment.

More Answers (0)

Categories

Products

Asked:

on 19 Apr 2017

Commented:

on 21 Apr 2017

Community Treasure Hunt

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

Start Hunting!