> Hi, folks.   I'm having trouble with a simple regex.  I'm sure it's just
> something small that I'm missing but nothing I'm trying is working.
> 
> In an HTML file I have comments like this:
> 
> <!-- START PRINT -->
> various html crap here
> <!-- END PRINT -->
> 
> Here's the regex I'm using:
> 
> /<!-- START PRINT -->(.*?)<!-- END PRINT -->/
> 
> And then the call to preg_match_all():
> 
> preg_match_all($printable_reg, $str, $out);
> 
> It's been quite a while since I've worked with regular expressions so
> I'm not sure what the problem is.  The regex isn't throwing errors, it's
> just not matching the content located between the start print and end
> print comments.
> 
> Can anyone lend a hand or give some advice?

Hi Pablo,

At a (reasonable) guess, I'd say it's because you're not using the "s"
pattern modifier in your preg_match_all()? The "s" modifier forces your
regular expression to match new lines with the "." metacharacter.

Try:

preg_match_all("/<!-- START PRINT -->(.*?)<!-- END PRINT -->/s", $str,
$out);

http://php.planetmirror.com/manual/en/reference.pcre.pattern.modifiers.php

Hope this helps.

Much warmth,

Murray
---
"Lost in thought..."
http://www.planetthoughtful.org

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

Reply via email to