RE: preg_match_all question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: Robert Cummings [mailto:robert@xxxxxxxxxxxxx]
> Sent: Friday, January 16, 2009 4:31 AM
> To: Phil Ewington - iModel Ltd.
> Cc: php-general@xxxxxxxxxxxxx
> Subject: Re:  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);


// Todd

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux