Re: StringCases and Shortest
- To: mathgroup at smc.vnet.net
 - Subject: [mg97356] Re: StringCases and Shortest
 - From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
 - Date: Wed, 11 Mar 2009 05:08:40 -0500 (EST)
 - Organization: Uni Leipzig
 - References: <gp8047$1k9$1@smc.vnet.net>
 - Reply-to: kuska at informatik.uni-leipzig.de
 
Hi,
StringCases["(-(a)--(bb)--(c)-",
  Shortest["(" ~~ q__ ~~ ")"] /; StringFreeQ[q, "("]]
??
Regards
   Jens
Grischika at mail.ru wrote:
> Hello!
> I want to select shortest substring between brackets from the string.
> For example:
> 
> Func["f(a+b) some text (comments)" ]
> 
>  should give:
> 
> {"a+b","comments"},
> 
> and
> 
> Func["(f(a+b) some text (comments)" ]
> 
> should give:
> 
> {"(a+b)","(comments)"}  too.
> 
> In the help I found  this line:
> 
> in[]:  StringCases["-(a)--(bb)--(c)-", Shortest["(" ~~ __ ~~ ")"]]
> out: {"(a)","(bb)","(c)"}
> 
> which, at first sight, works as I desire.
> 
> But when I add bracket at start of line then answer is incorrect
> in[]:  StringCases["(-(a)--(bb)--(c)-", Shortest["(" ~~ __ ~~ ")"]]
> out: {"(-(a)","(bb)","(c)"}
> 
> What is wrong? And how to solve this problem?
>