RE: [PHP] preg_match_all question

From: Date: Fri, 16 Jan 2009 20:56:56 +0000
Subject: RE: [PHP] preg_match_all question
References: 1 2 3  Groups: php.general 
Request: Send a blank email to php-general+get-286528@lists.php.net to get a copy of this message
> -----Original Message----- > From: Boyd, Todd M. [mailto:tmboyd1@ccis.edu] > Sent: Friday, January 16, 2009 2:13 PM > To: php-general@lists.php.net > Subject: RE: [PHP] preg_match_all question > > > -----Original Message----- > > From: Robert Cummings [mailto:robert@interjinn.com] > > Sent: Friday, January 16, 2009 4:31 AM > > To: Phil Ewington - iModel Ltd. > > Cc: php-general@lists.php.net > > 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

« previous php.general (#286528) next »