in reply to left-non-greedy regex?
And I don't call it "right non greedy". I think that's where you start thinking that "left non greedy" can exist. I call it "minimal repetitions", which means it doesn't need to really maintain state -- just prefer "match again" over "stop here", or vice versa.
Your hypothetical regex would need a lot of state as it kept searching. It'd also have to search the entire string every time, in a myriad of ways. Can you say slooooooow?
Here's one way you can do it with some extra code:
my $string = "...."; my $regex = qr/...(...).../; # must have $1 be the thing we're optimiz +ing to reduce my @solutions; while ($string =~ g/(?=$regex)/g) { push @solutions, [[@-], [@+]]; # push starts and ends } # now walk through the solutions, and pick the one with the minimal sp +an on $1 # [ code unfinished ]
-- Randal L. Schwartz, Perl hacker
Be sure to read my standard disclaimer if this is a reply.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: •Re: left-non-greedy regex?
by zby (Vicar) on Mar 26, 2003 at 09:51 UTC | |
by merlyn (Sage) on Mar 26, 2003 at 14:45 UTC | |
by zby (Vicar) on Mar 26, 2003 at 15:08 UTC |