> -----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