|
Posted by Philip Hallstrom on 09/28/05 20:40
> 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?
I'm thinking that perhaps you want to add the "s" modifier to your
pattern...
From http://us2.php.net/manual/en/reference.pcre.pattern.modifiers.php
s (PCRE_DOTALL)
If this modifier is set, a dot metacharacter in the pattern matches
all characters, including newlines. Without it, newlines are excluded.
This modifier is equivalent to Perl's /s modifier. A negative class such
as [^a] always matches a newline character, independent of the setting of
this modifier.
[Back to original message]
|