On Thu, May 06, 2004 at 11:10:17AM -0400, Paul Chvostek wrote:
> On Thu, May 06, 2004 at 03:02:16PM +1000, Justin French wrote:
> > 
> > This isn't working:
> > $text = preg_replace('/<!--(.*)-->/','',$text);
> > 
> > Can someone advise what characters I need to escape, or whatever to get 
> > it going?
> 
> It's not a matter of escaping.  You're matching too much with the ".*".
> 
> If you're sure you won't have any right-point-brackets inside comments,
> you can use something like:
>   
>     $text = ereg_replace("<!--[^>]*-->","",$text);
> 
> Accurately matching comments in an extended regular expression is tricky
> though.  The only thing you can really *negate* in an ereg is a range,
> not an atom.  And the close of the comment can't be prepresented as a
> range, since it's multiple characters.
> 
> Not to say it can't be done.  I just can't think of how at the moment.
> 

you can make the .* less greedy...

  $text = preg_replace('/<!--.*?-->/', '', $text);

- rob

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

Reply via email to