Re: Regex Parsing

From: Date: Sun, 05 Dec 2004 14:56:56 +0000
Subject: Re: Regex Parsing
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-203521@lists.php.net to get a copy of this message
rsw@rswfire.com wrote:
preg_match_all('#\[LEVEL([0-9])\](.*)\[/LEVEL[0-9]]#Uim', $content,
$matches); You make it look so easy, thanks! That takes care of step one, but how do I make it so everything in $content where there is a level set, is replaced with ###LEVEL?### Does #Uim tell it to only get the first [/LEVEL1] rather than going to the bottom and getting the second? I've always wondered how to tell it to get the first, rather than the last... Thanks in advance! U means it'll become UNgreedy (means it ends at the first occurence instead of the last),
m means multiline, so . also matches \n and \r chars. i means it's case-INsensitive. Which I thought was just useful ;) print_r($matches) will show what comes out exactly how. Then at some point you'll probably be able to echo something like echo '###LEVEL'.$matches[1][$i].'###'; where $i would be the part you're echoing from. Anyway, it'll be SOMETHING like that. I tend to always print_r the results first, and then write more code based on the result.

« previous php.general (#203521) next »