Regular Expression Problem , Please Help

2 Ansichten (letzte 30 Tage)
Yowh
Yowh am 27 Sep. 2012
I have no idea how to do this ..
str = '[a,b,c,d,e,[f1,f2],g],[u,v,w,[x1,x2],[y1,y2],z]';
Using this code:
regexp(str,'\[.*?(\[.*?\],[.*?\]).*?\]','tokens');
i got an answer like this:
ans =[f1,f2],g],[u,v,w,[x1,x2]
but what I want is like this:
ans = [x1,x2],[y1,y2]
  3 Kommentare
Yowh
Yowh am 27 Sep. 2012
the string is dynamic ..
Matt Fig
Matt Fig am 28 Sep. 2012
That doesn't really answer the question. I showed you how to find the answer you requested, then I asked you to give the general form, including the rule for finding what you want. "The string is dynamic" tells me nothing really. Good luck.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Walter Roberson
Walter Roberson am 27 Sep. 2012
Remember, .* will match everything including [ or ] characters. You need to exclude those characters from the search if you are looking for the ] matching a [ .
  1 Kommentar
Yowh
Yowh am 28 Sep. 2012
I have tried this but it doesn't work:
ans = regexp(str,'\[.*?\[[^\]]*?\].*?\]','match')

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Characters and Strings finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by