Regular Expression Problem , Please Help

2 次查看(过去 30 天)
Yowh
Yowh 2012-9-27
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 个评论
Matt Fig
Matt Fig 2012-9-28
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.

请先登录,再进行评论。

回答(1 个)

Walter Roberson
Walter Roberson 2012-9-27
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 个评论
Yowh
Yowh 2012-9-28
I have tried this but it doesn't work:
ans = regexp(str,'\[.*?\[[^\]]*?\].*?\]','match')

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by