> -----Original Message-----
> From: Boyd, Todd M. [mailto:[email protected]]
> Sent: Friday, January 16, 2009 2:13 PM
> To: [email protected]
> Subject: RE: [PHP] preg_match_all question
>
> > -----Original Message-----
> > From: Robert Cummings [mailto:[email protected]]
> > Sent: Friday, January 16, 2009 4:31 AM
> > To: Phil Ewington - iModel Ltd.
> > Cc: [email protected]
> > Subject: Re: [PHP] preg_match_all question
> >
> > On Fri, 2009-01-16 at 09:42 +0000, Phil Ewington - iModel Ltd.
wrote:
> > > Hi All,
> > >
> > > Having an issue with regular expressions, never been my strong
> point!
> > >
> > > The following pattern only picks up one instance per line, if more
> > than
> > > one instance exists all text from first {{ to last }} is included,
> > can
> > > anyone point out where I am going wrong?
> > >
> > > preg_match_all("/\{\{lang:(.*)\}\}/", $str, $tags);
> >
> > You need the ungreedy modifier:
> >
> > preg_match_all("/\{\{lang:(.*)\}\}/U", $str, $tags);
>
> FWIW, you can tell just the .* to be un-greedy using a ? like so:
>
> preg_match_all('/\{\{lang:(.*?)\|\|/', $str, $tags);
Correction:
preg_match_all('/\{\{lang:(.*?)\}\}/', $str, $tags);
...turned my squiggly brackets into pipe chars in a fit of randomness.
// Todd
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php