> 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